这个Excel公式出了什么问题?

时间:2011-10-17 20:54:10

标签: excel excel-formula

我有这个公式=IF(G6="", "", CONCATENATE("[",INDIRECT(G6),"]","Sheet1","!$A1"))

从列file name读取excel G6,然后从Column A读取Sheet1

这会导致Cell Reference Error无效。这有什么问题吗?

4 个答案:

答案 0 :(得分:3)

这就是你需要的:

=IF(G6="", "", INDIRECT(CONCATENATE("'[",G6,"]Sheet1'!$A1")))

如果G6包含文字zipcodes-phoenixTEST.xlsx,则公式等同于

='[zipcodes-phoenixTEST.xlsx]Sheet1'!$A1

将产生文件A1 Sheet1的单元格zipcodes-phoenixTEST.xlsx的值...

答案 1 :(得分:0)

=IF(G6="", "", CONCATENATE("[",INDIRECT("G6"),"]",Sheet1!$A1))

你错过了围绕G6的双引号

答案 2 :(得分:0)

我过去做过这个,

首先,你需要拥有正在阅读/搜索的excel文件,打开。然后,您必须在INDIRECT之后使用CONCATENATE

INDIRECT(CONCATENATE("[", G6, "]", "Sheet1","'!$A1"))

注意

' ! "!$A1"之前"'!$A1"忘记了{{1}}

答案 3 :(得分:0)

这个对我有用:

=IF(G6=""; ""; CONCATENATE("[";INDIRECT("G6");"]";Sheet1!$A1))

我的Excel告诉我应该在函数中使用分号(;)(althogh我没有英文版)。另外,你不应该将Sheet1和地址分开 - 它们只能在一起使用时起作用:Sheet1!$ A1。这也不应包含在“”中。