首页 > 解决方案 > 为什么 Match("text", A:A) 函数不适用于 Excel 中的文本

问题描述

为什么这个公式不起作用:

在此处输入图像描述

我希望得到 1 而不是 2。

标签: excelexcel-formulamatchexcel-2010

解决方案


短篇故事

正确的使用方法Match()Vlookup()始终写入False最新的可选参数,以获得您需要的 - 确切的值位置或错误,如果它不存在。因此:

=MATCH("s",A:A,False) 'or 0 instead of False

很长的故事

什么是False默认行为?这是根据Match() 文档

MATCH 找到第一个完全等于 lookup_value 的值。lookup_array 参数中的值可以是任何顺序。

回到我们的问题 -为什么它不起作用?因为默认参数[match_type]设置为1,即Less Than or Equal

在此处输入图像描述

  • 如果您需要使用-11作为可选match_type参数,则必须对值进行排序以返回一些有意义的见解。

match_type但是,这个公式中的“小于或等于”(默认参数)是什么?如果你问 Excel,它是这样认为的:

="a">"s" 'False
="a"<"s" 'True
="a"="s" 'False

但是,它还是做错了。为什么它开始评估并与第二个值进行比较"a"并返回它的位置,好像从第一个单元格开始会满足“小于或等于”条件?这确实使事情变得更加有趣,因为这里还有 Excel 的其他“隐藏”功能 - 例如,将范围的第一个单元格设置为最后一个要检查的单元格,这在某些函数中是内置的

于是,它开始与 比较"a",发现它小于或等于并返回它的位置。任务完成!

要完全失去这个人,如果您将问题中的公式更改为=MATCH("s";A1:A2),它将返回您所期望的,因此检查最后一个函数的第一个单元格取决于范围的类型。


推荐阅读