我正在尝试使用匹配函数根据动态单元格引用进行匹配

我正在尝试使用匹配函数根据动态单元格引用进行匹配

=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)

我发现这更容易阅读,但这只是个人观点。

相关内容