为什么 Match("text", A:A) 函数不能处理 Excel 中的文本
Why is Match("text", A:A) function not working with text in Excel
为什么这个公式不起作用:
我希望得到 1 而不是 2。
正如@JvdV 建议的那样,您必须为 excel 的旧版本指定第三个参数 Match_Type
。
=MATCH("s",A:A,0)
但是对于 Excel365 和 Google-Sheets
你可以省略这个参数并且 excel 将使用默认参数。
短篇小说
Match()
和Vlookup()
的正确使用方法是总是在最新的可选参数处写False
,以便得到你需要的——准确的值位置或错误,如果它不存在。因此:
=MATCH("s",A:A,False) 'or 0 instead of False
长话短说
什么是 False
默认行为?这个根据 Match() documentation:
MATCH finds the first value that is exactly equal to lookup_value. The values in the lookup_array argument can be in any order.
回到我们的问题 - 为什么它不起作用?因为默认参数[match_type]
设置为1
,也就是Less Than or Equal
:
- 如果您需要使用
-1
或 1
作为可选的 match_type
参数,则必须对值进行排序以 return 一些有意义的见解。
然而,这个公式中的“小于或等于”(默认 match_type
参数)是什么?如果你问 Excel 这是它的想法:
="a">"s" 'False
="a"<"s" 'True
="a"="s" 'False
但是,它仍然出了点问题。为什么它开始评估和比较第二个值 "a"
并 returned 它的位置,就好像从第一个单元格开始就满足“小于或等于”条件一样?这确实使事情变得有趣,因为 Excel 的其他“隐藏”功能来到这里 - 例如.
于是,它开始与"a"
进行比较,发现小于或等于并return调整了它的位置。工作完成!
为了完全失去所有人,如果您将问题中的公式更改为 =MATCH("s";A1:A2)
,它将 return 您所期望的,因此被检查的第一个单元格的最后函数取决于范围的类型。
为什么这个公式不起作用:
我希望得到 1 而不是 2。
正如@JvdV 建议的那样,您必须为 excel 的旧版本指定第三个参数 Match_Type
。
=MATCH("s",A:A,0)
但是对于 Excel365 和 Google-Sheets
你可以省略这个参数并且 excel 将使用默认参数。
短篇小说
Match()
和Vlookup()
的正确使用方法是总是在最新的可选参数处写False
,以便得到你需要的——准确的值位置或错误,如果它不存在。因此:
=MATCH("s",A:A,False) 'or 0 instead of False
长话短说
什么是 False
默认行为?这个根据 Match() documentation:
MATCH finds the first value that is exactly equal to lookup_value. The values in the lookup_array argument can be in any order.
回到我们的问题 - 为什么它不起作用?因为默认参数[match_type]
设置为1
,也就是Less Than or Equal
:
- 如果您需要使用
-1
或1
作为可选的match_type
参数,则必须对值进行排序以 return 一些有意义的见解。
然而,这个公式中的“小于或等于”(默认 match_type
参数)是什么?如果你问 Excel 这是它的想法:
="a">"s" 'False
="a"<"s" 'True
="a"="s" 'False
但是,它仍然出了点问题。为什么它开始评估和比较第二个值 "a"
并 returned 它的位置,就好像从第一个单元格开始就满足“小于或等于”条件一样?这确实使事情变得有趣,因为 Excel 的其他“隐藏”功能来到这里 - 例如
于是,它开始与"a"
进行比较,发现小于或等于并return调整了它的位置。工作完成!
为了完全失去所有人,如果您将问题中的公式更改为 =MATCH("s";A1:A2)
,它将 return 您所期望的,因此被检查的第一个单元格的最后函数取决于范围的类型。