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

Excel 结构化引用上的索引匹配/#值错误,excel,office365,Excel,Office365,在2个已定义的表上使用索引/匹配,在其列上使用结构化引用,会导致#值错误,尽管该函数已作为数组函数输入 鉴于: **Table1:** Key1|SourceVal 1|A 2|AA **Table2:** Key2|ValDisp 1|_{=INDEX(Table1;MATCH(Table2[@[Key2]];Table1[Key1];0);Table1[SourceVal])}_ “ValDisp”列中输入的公式会产生#值错误。 公式分析器显示找到了正确的值,但在最后

在2个已定义的表上使用索引/匹配,在其列上使用结构化引用,会导致#值错误,尽管该函数已作为数组函数输入

鉴于:

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

**Table2:**  
Key2|ValDisp  
1|_{=INDEX(Table1;MATCH(Table2[@[Key2]];Table1[Key1];0);Table1[SourceVal])}_
“ValDisp”列中输入的公式会产生#值错误。

公式分析器显示找到了正确的值,但在最后一步中变为#值。

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

您正在使用
=索引(表1;匹配(表2[@[Key2]];表1[Key1];0);表1[SourceVal])

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

=索引(表1;匹配(表2[@[Key2]];表1[Key1];0);2)

另一个选项是使用第二个匹配项来搜索列的名称,并返回其在
表1
的标题区域内的位置。大概是这样的:

我得到了Excel2007,所以我的结构化参考是不同的。与Excel 2010及更高版本不同


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

如果您试图从源Val返回值,您的公式将是:
=INDEX(表1[Sourceval]);匹配(Table2[@[Key2]];Table1[Key1];0))
并且它不需要数组条目。@Rory谢谢,但是剪辑匹配在索引剪辑之外,这不起作用。那么,你的意思是将返回矩阵定义为我想要返回的列?我不知道“clip”是什么意思,但这是从SourceVal返回值的公式,其中key2位于Table1的key1列中。如果公式在表2中,则不需要表2引用。如果您只对某一列的结果感兴趣,则基本上不需要索引整个表-您可以在该列中找到结果,因为匹配项将为您找到行号,而不管该列在索引中。。。如果要为整个表编制索引,则需要在title列上使用第二个匹配项来查找要作为整数返回的列。。。或者不给出那个参数,只使用第一个column@Rory“小故障”医生是对的。本质上,您是在向
INDEX()
公式输入一个字符串值,其中它期望一个整数返回您的
#值
错误。