匹配返回 #N/A

匹配返回 #N/A

我在单元格 G5 中有一个值:

I~W478i~100

F31:F43 中有一个数组:

I~W478i~100
II~W707a~79
I~W621c~97.5
II~W693a~81.5
I~W452n~80
I~W693a~71.5
II~W707a~64
I~W478i~75
II~W724a~100
I~W707a~79
I~W693a~91.5
I~W587a~69
III~W724a~75

我是 MATCH 公式来确定数组中值的位置:

=MATCH(G5,F31:F43,0)

这将返回#N/A。

我认为 F31 中的值应该与 G5 中的值匹配。为了再次检查,我创建了另一个公式:

=IF(G5=F31,TRUE,FALSE)

返回 TRUE。但是 MATCH 函数仍然返回 #N/A。我检查了值和数组,发现两者都是数据类型“General”。

造成此问题的可能原因有哪些?

答案1

问题在于,“~”字符在函数的第一个参数中使用时是特殊字符MATCH。它用于表示“~”后面的字符不是通配符(请参阅文档)。如果希望第一个参数包含“~”字符,则需要使用两个“~”字符。

因此,如果您将 G5 中的值从 更改I~W478i~100I~~W478i~~100,则MATCH函数将返回 1 而不是 #N/A。

正如 Scott Craner(感谢 Scott)在对该问题的评论中指出的那样,您也可以保留 G5 原样,并使用SUBSTITUTE插入额外的“~”字符作为公式的一部分。

=MATCH(SUBSTITUTE(G5,"~","~~"),F31:F43,0)

请注意,如果 F31:F43 中的值也可能包含"*""?"字符,则还需要将每个 更改"*""~*"并将每个"?"更改为"~?"

相关内容