MATCH函数的奇怪行为
在Excel 2010,Windows 7中,我遇到了MATCH
函数的下列奇怪行为。
在A1
,input0.81
,并selectA1:B1
,点击Fill-> Series ,在step value
框中input0.01
,那么我们在B1
有0.82
。
在A2
中input0.82
,在B2
中input公式:
=MATCH(A2,A1:B1,0)
那么我们会有#N/A
错误,整个事情看起来像这样:
0.81 0.82 0.82 #N/A
但是当我在B1
手工input0.82
时,一切正常,是一个bug还是这两个数字在某种意义上是不同的? 我试过了
TYPE(B1)=TYPE(A2) and B1=A2
他们都返回TRUE
,什么公式可以表明他们是不同的?
伟大的问题
这是一个精确的问题………..尽pipeB1似乎与A2完全匹配,但事实并非如此。 有接近,非常接近; 如此接近甚至= A2 = B1将返回True。
但是他们还不够接近MATCH()来工作。
编辑#1:
要检查B1和A2之间的差异,请运行此VBAmacros:
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()函数也会显示它们是不相等的。