在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。
答案 0 :(得分:0)
INDEX可以通过两种方式调用。在您使用它的方式中,第一个参数是一个范围,第二个和第三个参数是数字。
您正在使用=INDEX(Table1;MATCH(Table2[@[Key2]];Table1[Key1];0);Table1[SourceVal])
最后一个参数Table1[SourceVal]
不会返回数字,因此请尝试将其替换为列号:
=INDEX(Table1;MATCH(Table2[@[Key2]];Table1[Key1];0);2)
另一个选择是使用第二个MATCH,该MATCH搜索列的名称并返回其在Table1
标题区域内的位置。像这样:
我有Excel 2007,所以我的结构化引用有所不同。在Excel 2010及更高版本中不是@
您可以将2
替换为MATCH(Table1[[#HEADERS];[Sourceval]];Table1[#HEADERS];0)