为什么Excel的MATCH()函数找不到匹配项?

22

我有一张表格,其中一些数字被存储为文本(UPC码,因此我不想丢失前导零)。 COUNTIF() 可以很好地识别匹配项,但是 MATCH() 不起作用。 MATCH() 无法处理存储为文本的数字,还是这只是一个我需要解决的限制?

3个回答

36

MATCHVLOOKUPHLOOKUP等函数需要匹配数据类型(数字或文本),而COUNTIF/SUMIF则没有区别。你是用MATCH来查找位置还是仅用于确定该值是否存在于数据中?

如果您有一个数字查找值,可以在公式中使用&""将其转换为文本,例如:

=MATCH(A1&"",B:B,0)

....或者如果它是需要与数字匹配的文本查找值

=MATCH(A1+0,B:B,0)


11
巴里所说的是正确的,但我更倾向于更具表现力的=MATCH(TEXT(A1,"0"),B:B,0)=MATCH(VALUE(A1),B:B,0) - JustinJDavies
那很有道理。谢谢! - Charlie Carwile
1
@barry 嘿,你是我的救星!“像MATCH、VLOOKUP和HLOOKUP这样的函数需要匹配数据类型,而COUNTIF/SUMIF则不区分”就像神谕一样! - SIslam
3
请注意,如果您不知道格式是什么,则可以将变换应用于两侧:=MATCH(VALUE(A1), VALUE(B:B), 0) 对我很有效。 - miken32
使用=MATCH(A1+0,B:B,0)对我很有帮助。这也适用于跨表的情况,例如=MATCH(My_Table[[#data],[Column_Name]]+0,[@[Value]],0) - Signal15
显示剩余2条评论

0

如果您想在单元格A2中查找单词“test”,请键入以下内容:

=MATCH(""&"test"&"",A2,0)

如果这不起作用,请尝试使用=Trim=Clean来净化您的列。

如果=Trim和=Clean都没有帮助,那么只需使用左侧250个字符... (因为Match公式可能会在250个字符后遇到超时/溢出。)

=Left(A2, 250)


-1

如果您正在使用名称来引用范围,一旦您已经修复了数据类型,请重新定义任何引用这些范围的名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接