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)。