Excel CountIFfunction中的BUG

我在Excel中的CountIf函数有问题。

=COUNTIF(A:A,A2) 

A列由以下项目组成:

 0107791489614255200011140926107503100513 0107791489614255200011140926107503100457 0107791489614255200011140926107503100518 0107791489614255200011140926107503100503 0107791489614255200011140926107503100519 0107791489614255200011140926107503100444 0107791489614255200011140926107503100521 0107791489614255200011140926107503100438 0107791489614255200011140926107503100449 0107791489614255200011140926107503100443 0107791489614255200011140926107503100501 0107791489614255200011140926107503100455 

公式结果为12,即使这些string不是真的一样。 它将这些string统计为类似的string,我认为这与它的string长度有关?

你们有什么感想? 我感谢您的帮助。

在一个撇号之前的string将不能补救的情况。 COUNTIF被devise为在可能的情况下将数据解释为数字,而不考虑所讨论的值的数据types。 这有时是有帮助的,有时(如这里)不。

SUMPRODUCT不显示此属性:

 =SUMPRODUCT(0+($A$1:$A$12=A2)) 

将根据需要返回1。

问候

+1,一个好问题。 不是一个错误,而是一个function!

这是由于Excel隐式地将input转换为其内部数字types并因此失去了精确性 。 Excel的内部数值types是IEEE浮点双精度数字。 (虽然它与格式和错误传播聪明的事情,所以它似乎得到像1/3 + 1/3 + 1/3正确的总和)。

由于他们如此相似,他们都相互比较相等。

一个补救办法是在每个string前加' (单引号),这将防止转换为数字types。 然后COUNTIF值返回1.(至less在我的Excel版本中; 2013)。