首页   

当COUNTIF函数遇到身份证

Excel之家ExcelHome  · Excel  · 6 年前

COUNTIF函数的作用是统计指定条件的个数,想必大家都多多少少了解一些COUNTIF函数的用法。

有朋友就发现这样一个问题,在使用COUNTIF函数统计身份证号码的时候,得到的结果竟然是错误的。

如图中所示,在E列使用下面的公式,判断B列的身份证号码是否重复。

=IF(COUNTIF($B$2:$B$11,B2)>1,"重复","")

公式中COUNTIF($B$2:$B$11,B2)部分,用来统计$B$2:$B$11数据区域中等于B2单元格的数量。

再使用IF函数判断,如果$B$2:$B$11数据区域中,等于B2单元格的数量大于1,就返回指定的结果1“重复”,否则返回空值。


可是当我们仔细检查时就会发现,B2和B11单元格的身份证号码是完全相同,因此函数结果判断为重复,这没问题。但是B6单元格和B2、B11单元格内容只有前15位相同,函数结果仍然判断为重复,这显然是不正确的。

我们来看一下究竟是什么原因呢?

虽然B列中的身份证号码为文本型数值,但是COUNTIF函数在处理时,会将文本型数值识别为数值进行统计

在Excel中超过15位的数值只能保留15位有效数字,后3位全部视为0处理,因此COUNTIF函数会将B2、B6、B11单元格中的身份证号码都识别为相同。

用什么办法来解决这种误判的问题呢?

可将E2单元格公式修改为:

=IF(COUNTIF($B$2:$B$11,B2&"*")>1,"重复","")

在上面这个公式中,COUNTIF函数的第2参数使用了通配符"*",最终得出正确结果。

使用通配符"*"的目的是使其强行识别为文本进行统计,相当于告诉Excel“我要统计的内容是以B2单元格开头的文本”,Excel就会老老实实的去执行任务了。所以说,Excel就像一个忠实的士兵,能不能打胜仗,关键还是要看我们怎么指挥的。


除了在第二参数后面加通配符的方法以外,也可使用以下数组公式完成计算,记得要按Ctrl+Shift+回车:

=IF(SUM(N(B2=$B$2:$B$11))>1,"重复","")

这个公式中,直接使用了等式B2=$B$2:$B$11,等号就像一个天平,只有左右两侧完全一致了,等式才会成立的。

等式B2=$B$2:$B$11返回的是逻辑值TRUE或是FALSE,用N函数将逻辑值转换为数值,TRUE转换为1,FALSE转换为0,然后再用SUM函数求和。

通过这样迂回的方法完成身份证号码是否重复的判断,怎么样,这下了解了吧?

图文制作 祝洪忠

易学宝微视频教程,1290个Office技巧精粹,每个技巧都与实际工作密切相关。轻松学习技巧,练就职场达人,淘宝搜索关键字:ExcelHome易学宝

本公众号主页回复关键字 大礼包 ,获取50集精彩微视频教程。

推荐文章
上海新房指南  ·  上海新房Q1套均总价已接近700W,400万 ...  ·  2 年前  
相机笔记  ·  便宜2.8万元的富士新机到底有何简化?  ·  3 年前  
广告也疯狂  ·  狗子:我管钱,厉害吧  ·  4 年前  
© 2022 51好读
删除内容请联系邮箱 2879853325@qq.com