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

小A踩坑系列1:VLOOKUP函数有个BUG,你——知道吗?

……

小A离职后“赋闲”在简陋的租室里。

冬天深了,天气越来越冷,患有懒癌晚期的小A不想出门。她想年后再去找工作,这段时间,就一个人呆着,充下电,学下OFFICE办公软件、职场交际法则、以及如何谈一个高富帅的男票……

小A的塑料花姐妹小C碰到一个Excel问题,她知道小A有在网上学过一段时间表格技巧,Excel玩的不错,据说——因此就来问小A……

小C的问题很简单。

小A给秒杀了。

小C的惊呼、赞叹和吹捧满足了小A的虚荣心,小A很谦虚的表示,一般操作,都是一般操作……

没想到,第2天,小A就被小C给骂了……

原来是小A把那题给解错了,害的小C被主管狠批了半个小时。

就是这题儿,需要查询C列的身份证号在A列是否存在,小A给出的函数公式是:

=IF(COUNTIF(A:A,C2),'存在','不存在')

COUNTIF函数计算C2的值在A列出现的次数,如果次数大于0,则条件为真,IF函数返回“存在”,否则返回“不存在”。

这题如此简单……怎么可能算错?!

……除非……COUNTIF跟VLOOKUP学坏了,也出BUG了~!

小A很懵。

然而不管怎么样!结果确确实实算错了,很多C列的身份证号,A列并不存在,都算成了存在……

BUG!!又见BUG!!!

可惜小A不认识八阿哥的皇阿玛,所以灭不了BUG~

缓过劲来的小A愤愤的问了几个在网上结识的表格高手,终于明白这bug是怎么回事了。

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

例如370409198907045562,会变成370409198907045000。

如此一来,COUNTIF的计算结果就难免出错了。

这就是坊间著名的身份证问题。

怎么解决呢?

高手也给出了解决公式:

=COUNTIF(A:A,C2&'*')

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

小A松了口气,原来是这么回事,8错8错,又学了一招。

小A把高手的解决方案给了小C。

会不会又错?小C不放心。

绝对不会错!小A保证。

如果错了呢?

不可能!

如果……

不可能!

……

第2天

小A就被小C给骂了……

原来是小A把那题又给解错了,害的小C被主管狠批了1个半小时。

……

……

小C说,小A你就是个傻子,C3单元格的身份证号只有17位,A列所有的身份证号都是18位,你告诉我,为什么你认为它存在?

小A说不出来。

她无言以对……

原来高手也……

小C发了一大段信息给小A,意思无非是她早就知道Excel不是个好东西,天底下哪里有这么好的事,几秒钟就可以做完她要做一天的事,什么Excel函数?完全不靠谱!还是一条一条查找有用……

小A气得抬手就给了小C一……个赞!!

——小C说的太对了!函数就是个坑货啊!!如果不会函数,哪有这么多破事?人生识字忧患始…………

……

……

我忘记告诉你那个公式……要求数值的长度得一致,比如都得18位。高手对小A解释。

……小A不知道说什么好。

高手问小A,这个问题,你为什么不用VLOOKUP呢?我记得你的VLOOKUP学的很好啊!

……小A更加不知道说什么好了。

我和VLOOKUP有仇,大仇!小A这么回高手。

高手不想揭小A的伤疤,他回了个“哦“字,然后说,那你也可以用MATCH函数啊,比如:=IF(COUNT(MATCH(A:A,C2,0)),'存在','不存在')

那我要是想计数呢?小A问,我要是想计算C列的数据在A列出现的次数,COUNTIF就没办法用了吗?

高手说,计数就用SUMPRODUCT吧,用等号去判断两个值是否相等。=SUMPRODUCT((A$2:A$22=C2)*1)。等号就像天枰,很公平,等号两边的数值类型和值都一样才相等,它不会犯COUNTIF的错。

小A致谢,想了想,又问:你刚刚说MATCH函数,它有没有BUG啊?

BUG?没有啊!高手很困惑小A的提问。

真的没有?

没有!

真的?

真的!!

小A信以为真,她决定以后再碰到数据查询问题就用MATCH函数去处理~VLOOKUP?她不敢用了。

于是……

没多久,她就被MATCH函数给坑了。

……

……

MATCH的坑……

……下期再聊吧~

(0)

相关推荐

  • 比Vlookup好用10倍的Filter函数来了!

    最近看到一个棘手的Excel查找难题.详情如下图,要求在B列设置公式,根据A列的房间号,从右表中查找出所有的姓名. 提问者说A列的房间号有几百个,以往都是手工一个个输入的,眼都看瞎了. 一对多查找小E ...

  • 使用COUNTIF函数,一定要小心了!

    前言 COUNTIF是我们经常遇到的带条件统计函数,使用频率非常高,但是它有一个小小的BUG,如果大家不清楚,就可能造成计算错误! 捉虫 01 第一种情况:文本型日期格式 第一列为文本型数据,在用CO ...

  • 这个经常用来计算年龄的函数竟然有BUG!怎么办?

    在DAX里,我们计算年龄经常会用YEARFRAC函数,但最近才注意到,原来这个函数计算年龄时会有BUG! DAX.Guide网站上,这一点在YEARFRAC函数的介绍中提到以下例子: -- The f ...

  • 【视频】Excel函数每日一讲(16):countif函数、刷题免错技巧

    以上视频的所有教学内容,选自教材<玩转Office轻松过二级>(第3版) 书上包含所有方法.技巧.题目,可以自己看书自学. 字都认识,为啥要让别人念呢? 选自本书第9章前言 公式和函数,E ...

  • countif函数用法多,坑也不少!

    你好,我是刘卓.欢迎来到我的公号,excel函数解析.今天接着来聊countif函数.虽然它很好用,也深受小伙伴的喜爱,但是坑也不少,需小心避免. 今天就简单分享一下它坑在什么地方,具体的表现就是会区 ...

  • countif函数很有用,各种用法学起来!

    你好,我是刘卓.欢迎来到我的公号,excel函数解析.今天来分享下countif函数的一些用法.countif函数是一个强大的统计函数,在工作中有着广泛的应用. 它主要用于统计满足某个条件的单元格数量 ...

  • 此公众号可以留言了!countif函数的注意事项!

    好久没更新文章了,一个是没动力,关注的人不多:一个是没有留言功能,都不知道你们的反馈,感觉一个人在自说自话.不过幸运的是今天此公众号有留言功能了,大家可以点文章末尾的链接来写留言了. 接下来,继续咱们 ...

  • 如何使用Countif函数统计个数?

    如何使用Countif函数统计个数?

  • COUNTIF函数的几个高能用法

    一.不一样的序号 如下图所示,要在A列按部门输入序号,不同部门的序号从1开始. 在A2单元格输入公式,向下复制: =COUNTIF(B$2:B2,B2) COUNTIF函数的统计区域是B$2:B2,第 ...

  • excel条件计数函数视频:应用countif函数统计区域数据发货订单

    excel条件计数函数视频|countif函数应用视频|excel统计发货订单视频|excel数据统计区域视频 本视频教程由部落窝教育分享.