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

时间:2019-05-10 08:21:34

标签: excel office365

在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。

1 个答案:

答案 0 :(得分:0)

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

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

最后一个参数Table1[SourceVal] 不会返回数字,因此请尝试将其替换为列号:

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

enter image description here

另一个选择是使用第二个MATCH,该MATCH搜索列的名称并返回其在Table1标题区域内的位置。像这样:

  

我有Excel 2007,所以我的结构化引用有所不同。在Excel 2010及更高版本中不是@

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