多语言展示
当前在线:1481今日阅读:27今日分享:41

COUNTIF函数有个BUG,你——知道吗?

COUNTIF也是一个自带BUG的男人,本章就来给大家聊一下这BUG是怎么回事。
工具/原料
1

电脑

2

EXCEL

方法/步骤
1

就是下图这题儿,需要查询C列的身份证号在A列是否存在

2

小C给出的函数公式是:  =IF(COUNTIF(A:A,C2),'存在','不存在')

3

COUNTIF函数计算C2的值在A列出现的次数,如果次数大于0,则条件为真,IF函数返回'存在',否则返回'不存在'。结果计算错了,这题如此简单……怎么可能算错?!  ……除非……COUNTIF出BUG了~!

4

原来COUNTIF在计算的过程中,会自动将文本数值转换为数值。而众所周知的是,当数值超过15位,如果不作文本保存,就会丧失准确度;超过15位的部分,统统会变成了0。比如3704092,会变成3704090。所以出现上面的BUG。

5

有人采用了=COUNTIF(A:A,C2&'*'),C2&'*',星号是通配符,代表0到多个字符,和数值搭配后,会将数值强迫转换为文本值,这样就可以强制COUNTIF按文本类型对数值进行匹配计数了,也就避免了【BUG】的产生。

6

结果,又错了。

7

=COUNTIF(A:A,C2&'*')……要求数值的长度得一致,比如都得18位

8

手说,计数就用SUMPRODUCT吧,用等号去判断两个值是否相等。  =SUMPRODUCT((A$2:A$22=C2)*1)

注意事项

每个函数都有使用范围,使用限制

推荐信息