=MATCH(B$4,CONCATENATE("'",A5,"'!$E:$E"),0)
上述公式结果是#VALUE!
单元格 A5 的值为 Sheet1,但经过测试后,该值将更改为日期,例如 01-Jul-14
我究竟做错了什么?
我将使用它作为从每日工作表构建数据表的一部分,例如 INDIRECT(CONCATENATE("'",A5,"'!",CONCATENATE("E",匹配(B$4,Sheet1!$E:$E,0))))
答案1
首先,您需要INDIRECT
在第一个公式中使用。第二个参数MATCH
需要是一个数组,并且您要向其传递一个字符串。将其更改为
=MATCH(B$4,间接(连接(“'”,A5,“'!$E:$E”)),0)
其次,在第二个公式中,您正在调用CONCATENATE
并将其返回值传递给另一个CONCATENATE
。这是完全没必要的(即不必要的复杂)。您可以更改
CONCATENATE("'", A5, "'!", CONCATENATE("E", MATCH(B$4,Sheet1!$E:$E,0)))
到
CONCATENATE("'", A5, "'!", "E", MATCH(B$4,Sheet1!$E:$E,0))
此外,Excel 还使用&
连接运算符,因此你可以将上述内容替换为
"'" & A5 & "'!" & "E" & MATCH(B$4,Sheet1!$E:$E,0)
我发现这更容易阅读,但这只是个人观点。