MATCH函数的奇怪行为

时间:2014-07-02 15:50:42

标签: excel excel-2010 excel-match

在Excel 2010,Windows 7中,我遇到MATCH函数的以下奇怪行为。

A1,输入0.81,然后选择A1:B1,点击 Fill->系列,在step value框中输入{{ 1}},然后我们在0.01中有0.82

B1中,输入A2,然后在0.82中输入公式:

B2

然后我们会遇到=MATCH(A2,A1:B1,0) 错误,整个事情看起来像这样:

#N/A

但是当我在0.81 0.82 0.82 #N/A 中手动输入0.82时,一切正常,这是一个错误还是这两个数字在某种意义上是不同的?我试过了

B1

他们都返回TYPE(B1)=TYPE(A2) and B1=A2 ,哪个公式可以表明它们不同?

1 个答案:

答案 0 :(得分:2)

很棒的问题

这是一个精确的问题...........即使 B1 似乎与 A2 完全匹配,但事实并非如此。有近,非常接近;如此接近甚至 = A2 = B1 将返回 True。

但它们与 MATCH()的距离不够近。

修改#1:

要检查 B1 A2 之间的差异,请运行此VBA宏:

Sub dural()
    Dim A2 As Range, B1 As Range
    Set A2 = Range("A2")
    Set B1 = Range("B1")
    v1 = A2.Value
    v2 = B1.Value
    MsgBox (v1 = v2) & vbCrLf & v1 - v2
End Sub

您应该看到:

-1.11022302462516E-16

如果没有VBA, = DELTA()功能也会显示它们不相等。