如何避免Excel中CONCATENATE函数拼接字符串时首尾生成额外双引号
问题根本原因
你遇到的不是拼接的字符串真的包含首尾双引号的问题:拼接结果两端的双引号是Excel展示文本类型值时的默认格式标记,没有实际写入字符串内容,所以你尝试删改拼接逻辑、替换引号的操作都不会生效。
核心问题是:直接拼接生成的路径是文本格式,INDEX函数无法将文本类型的路径识别为有效的单元格区域对象。
解决方案
在拼接好的路径外层套INDIRECT函数,将文本格式的路径转换为Excel可识别的单元格区域引用即可,修正后的公式如下:
=-INDEX(INDIRECT(CONCATENATE("'";"C:\Users\Me\Projects\pythonProj[";$AZ$1;".xlsx]";"Feuil1";"'";"!$1:$1048576"));14-AZ$4;18)
也可以改用&符号拼接,逻辑完全一致:
=-INDEX(INDIRECT("'C:\Users\Me\Projects\pythonProj["&$AZ$1&".xlsx]Feuil1'!$1:$1048576");14-AZ$4;18)
注意事项
INDIRECT函数对外部工作簿的引用要求目标工作簿处于打开状态,如果目标文件关闭,公式会返回#REF!错误。- 如果需要引用已关闭的外部工作簿数据,需要改用VBA自定义函数或者Power Query批量提取。
内容的提问来源于stack exchange,提问作者Bean_from_accounts
相关产品推荐
相关产品推荐

