Wil*_*ald 5 excel formula countif
我在Excel中的CountIf函数遇到问题.
=COUNTIF(A:A,A2)
Run Code Online (Sandbox Code Playgroud)
A列包含以下项目:
0107791489614255200011140926107503100513
0107791489614255200011140926107503100457
0107791489614255200011140926107503100518
0107791489614255200011140926107503100503
0107791489614255200011140926107503100519
0107791489614255200011140926107503100444
0107791489614255200011140926107503100521
0107791489614255200011140926107503100438
0107791489614255200011140926107503100449
0107791489614255200011140926107503100443
0107791489614255200011140926107503100501
0107791489614255200011140926107503100455
Run Code Online (Sandbox Code Playgroud)
公式结果为12,即使这些字符串组完全不相同.它将这些字符串计为类似字符串,我认为这与字符串长度有关?
你们有什么感想?我感谢您的帮助.
+1,一个很好的问题.不是一个错误,而是一个功能!
这是由于Excel隐式地将输入转换为其内部数字类型,并且这样做会失去精度.Excel的内部数字类型是IEEE浮点双精度数.(虽然它在格式化和错误传播方面做得很聪明,所以它看起来像1/3 + 1/3 + 1/3正确的总和).
由于它们如此相似,所以它们都相互比较.
一种补救措施是为每个字符串添加前缀'
(单引号),这将阻止转换为数字类型.然后该COUNTIF
值返回1.(至少在我的Excel版本中; 2013年).
在字符串前面加上一个撇号并不能解决这种情况。COUNTIF 旨在尽可能将数据解释为数字,而不管相关值的数据类型如何。这有时很有帮助,有时(如这里)没有帮助。
SUMPRODUCT 不表现出此属性:
=SUMPRODUCT(0+($A$1:$A$12=A2))
Run Code Online (Sandbox Code Playgroud)
将根据需要返回 1。
问候
归档时间: |
|
查看次数: |
2353 次 |
最近记录: |