在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
,哪个公式可以表明它们不同?
答案 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()功能也会显示它们不相等。