MATCH抛出数据类型错误

时间:2013-12-30 16:55:40

标签: excel lookup

我需要根据2列数据进行参考查找。公式在“函数参数”对话框中显示正确的结果,但由于某种原因在单元格中显示#VALUE!。下面是正在发生的事情的简化示例,参考数据显示在第2行到第5行。

enter image description here

C8D12中的索引和匹配公式会抛出值错误(基于MATCH),但是如果打开“函数参数”对话框,则会显示正在计算的正确答案。每行使用相同的基本公式,该公式使用A列和B列中的值来执行参考区域中匹配行的Usance Code的查找。单元格C8D8的公式如下:

C8

=INDEX($A$2:$C$5,MATCH(A8 & B8, $A$2:$A$5 & $B$2:$B$5, 0), 3)

D8

=MATCH(A8&B8,$A$2:$A$5&$B$2:$B$5,0)

MATCH抛出错误“公式中使用的值是错误的数据类型”并显示#VALUE!但是如果您将光标放在具有任一公式的单元格中并选择“插入”功能“打开功能参数对话框,公式正在计算其INDEXMATCH公式的正确结果,如上所示。

如果有人能够解释数据类型错误的根本原因并提供解决方案,那将不胜感激。

2 个答案:

答案 0 :(得分:1)

这是因为您使用的公式是数组公式。 $A$2:$A$5 & $B$2:$B$5是一个数组,因为连接函数(此处以&的形式使用)不适用于数组,除非函数显式调用。

正常公式将因此得到错误#VALUE!

要解决此问题,请在输入公式后按 Ctrl + Shift + 输入,而不是仅输入 Enter 。那应该解决这个问题。您还会注意到在执行此操作时会在公式中插入大括号(从公式栏中插入),这些指示数组公式。

答案 1 :(得分:1)

这里的另一种选择是使用LOOKUP函数来获得所需的结果 - 不需要“数组输入”,即C8中的这个公式被复制下来

=LOOKUP(2,1/(A$2:A$5=A8)/(B$2:B$5=B8),C$2:C$5)

请注意,如果A8和B8都匹配多行,则会获得最后一行