结构化引用的索引匹配/#value 错误

INDEX MATCH on structured references / #value error

在 2 个定义的表上使用 INDEX / MATCH 并在它们的列上使用结构化引用会导致 #value 错误,尽管该函数已作为数组函数输入。

鉴于:

**Table1:**  
Key1|SourceVal  
1|A  
2|AA

**Table2:**  
Key2|ValDisp  
1|_{=INDEX(Table1;MATCH(Table2[@[Key2]];Table1[Key1];0);Table1[SourceVal])}_

在第 "ValDisp" 列中输入的公式会导致 #value 错误。
公式分析器显示找到了正确的值,但在最后一步变成了#value。

INDEX 可以通过两种方式调用。在您使用它的方式中,第一个参数是一个范围,第二个和第三个参数是数字。

您正在使用 =INDEX(Table1;MATCH(Table2[@[Key2]];Table1[Key1];0);Table1[SourceVal])

最后一个参数 Table1[SourceVal] 不是 return 一个数字,所以尝试用列号替换它:

=INDEX(Table1;MATCH(Table2[@[Key2]];Table1[Key1];0);2)

另一个选项是使用第二个 MATCH 来搜索列的名称和 return 它在 Table1 的 headers 区域内的位置。像这样:

I got Excel 2007 so my structured references are different. Not @ like in Excel 2010 and higher

您可以将 2 替换为 MATCH(Table1[[#HEADERS];[Sourceval]];Table1[#HEADERS];0)