我在使用 Excel 中的 CountIf 函数时遇到问题。
=COUNTIF(A:A,A2)
A 列包含以下项目:
0107791489614255200011140926107503100513
0107791489614255200011140926107503100457
0107791489614255200011140926107503100518
0107791489614255200011140926107503100503
0107791489614255200011140926107503100519
0107791489614255200011140926107503100444
0107791489614255200011140926107503100521
0107791489614255200011140926107503100438
0107791489614255200011140926107503100449
0107791489614255200011140926107503100443
0107791489614255200011140926107503100501
0107791489614255200011140926107503100455
即使这些字符串集实际上并不相同,但公式的结果为 12。它将这些字符串视为相似字符串,我认为这与其字符串长度有关?
大家觉得怎么样?我感谢您的帮助。
最佳答案
+1,好问题。并不是真正的错误,而是一个功能!
这是由于 Excel 隐式地将输入转换为其内部数字类型并在此过程中丢失了精度。 Excel 的内部数值类型是 IEEE 浮点 double 。 (尽管它在格式化和错误传播方面做得很聪明,所以它似乎得到了 1/3 + 1/3 + 1/3 等正确的总和)。
由于它们非常相似,所以比较起来都是平等的。
一种补救措施是在每个字符串前添加 '
(单引号),这将阻止转换为数字类型。然后 COUNTIF
值返回 1。(至少在我的 Excel 版本;2013 中是这样)。
关于excel - Excel CountIF函数中的BUG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26882336/