Excel使用重复键在稀疏范围内匹配Bug

TheRange中的数据是{1,“”,1,“”,1,“”,1,“”,2}

= Match(2,TheRange,1)按预期返回9

=匹配(1.5,TheRange,1)按预期返回7

= Match(1,TheRange,1)返回5,这不是预期的

任何人都会遇到这个? 任何人得到解决?

另外,如果我在VBA中使用Worksheet.Function.Match,我会得到更多意想不到的结果。

如果您为“match_type”参数(MATCH的第三个参数)指定1,则Excel会预期将该数组进行sorting。 显然,Excel会对值进行二进制search – 从中​​间开始search1,然后find中间值(这是您的案例中的第5个值)。

如果你为“match_type”指定了0,你将会得到你所期望的 – 至less在这种情况下。 有关更多信息,请参阅MATCHfunction的文档。

解决这个问题的一个办法就是把空白变成错误。

试试这些公式:

=MATCH(1/(2),1/$A$1:$A$9,-1) =MATCH(1/(1.5),1/$A$1:$A$9,-1) =MATCH(1/(1),1/$A$1:$A$9,-1) 

这些是数组公式,所以当你input它们时,你必须用“ctrl + shift + enter”来确认,而不是“enter”。