二维码 购物车
部落窝在线教育欢迎您!

卡号离奇减少表哥冤枉被罚

——Excel,原来你有真假重复!

 

作者:夏雪来源:部落窝教育发布时间:2018-11-10 18:42:45点击:4497

分享到:
0
收藏    收藏人气:1人
版权说明: 原创作品,禁止转载。
编按:

真没想到!如果不是看了这篇文章,小编绝想不到Excel里还有真假重复。一直被大家喜欢的查重利器COUUTIF函数这次失手了,把不是重复的当成了重复统计……

 

 

前两天有个小伙伴给我发了个文档,说自己被COUNTIF坑了,弄错重复被罚了,让我帮他找出正确的重复值。总共有547行数据,如图:

 

 

我一看这不是很简单吗?选中A列数据,点击【开始】选项卡下的【条件格式】下拉菜单的突出显示单元格规则里的重复值

 

 

在【重复值】窗口进行设置。

 

 

结果出来了。

 

 

很快我就发现不对了。按住Ctrl+F打开【查找和替换】窗口,查找A2单元格的值,但是系统提示只有“1个单元格被找到。可是标记红色的不是重复值吗?

 

 

这是什么原因呢?我研究了一下发现:EXCEL默认数据只有15位,所以长于15位的部分在数据比对时全部视作0。由于这列数据长度是16位,那么第16位的数据系统统一都会认为是 0,因此出现了这么多重复值。这就属于EXCEL中的假重复。这种情况下,直接按COUNTIF公式常规用法=COUNTIF($A$2:$A$547,A2)查重肯定失手,这就是小伙伴认为自己被COUNTIF坑的原因。

那长于15位的数据如何判断重复值呢?接下来给大家介绍几个使用公式的条件格式来解决这个问题。

COUNTIF标注重复

选中要判断重复项的数据区域A2:A547, 点击【开始】选项卡下的【条件格式】下拉菜单的新建规则

 

 

在【新建格式规则】窗口选择使用公式确定要设置格式的单元格,在下方的编辑规则说明里输入公式“= COUNTIF($A$2:$A$547,A2&"*")>1”,点击“格式”,选择填充色为蓝色。点击确定。

 

 

这样,重复值就被标记出来了。

 

 

解析:

   = COUNTIF($A$2:$A$547,A2&"*")>1

COUNTIF(指定区域,条件)对指定区域中符合条件的单元格进行计数。指定区域是对单元格进行计数的区域。条件的形式可以是数字、表达式或文本等。"*"是通配符,代表任意多个字符的文本。

由于EXCEL中超过15位的数字只能保留15位有效数字,后面全部视为0,所以“3771000100001197”和“3771000100001192”会被认为是重复值,因为它们都被当成了数字“3771000100001190”。这里使用 &"*"将单元格数字后面统一添加*符号强行当做文本进行识别统计,就可以准确地通过计数值是否大于1识别出数字是否重复。

需要注意的是,该条件格式应用的区域必须从A2开始,同时由于应用的是整列单元格所以COUNTIF指定区域必须加绝对应用,而A2则为相对引用。

 

 

 

   不过这个公式存在一个缺陷,就是当所在区域里有空格的时候,也会自动识别为重复。

 

 

这是由于当单元格为空,如上图A9A9&"*"的结果为"*",公式就变成在$A$2:$A$547区域中查找"*"*作为通配符代表任意一个字符,所以使用COUNTIF会统计出所有不为空的单元格的计数,当然结果会大于1 ,被标注为重复。

那有没有什么方法可以屏蔽空格呢?我们在原有公式的基础上乘以A2<>"",把条件格式的公式修改成“=(COUNTIF($A$2:$A$547,A2&"*")*(A2<>"")>1)”。若单元格为空,A2<>""返回FALSE,原有结果跟逻辑值FALSE相乘等于00不大于1,自然不会被标注为重复:

 

 

SUMPRODUCT标注重复

选中要判断重复项的数据区域A2:A547, 点击【开始】选项卡下的【条件格式】下拉菜单的新建规则

 

 

在【新建格式规则】窗口 选择使用公式确定要设置格式的单元格,在下方的编辑规则说明里输入公式“=SUMPRODUCT(($A$2:$A$547=A2)*(A2<>""))>1”,点击“格式”,选择填充色为蓝色。点击确定。

 

 

完成结果如下:

 

 

解析:

   =SUMPRODUCT(($A$2:$A$547=A2)*(A2<>""))>1

SUMPRODUCT返回多个参数乘积之和,参数可以是数组或者对应的区域。第一个参数是$A$2:$A$547=A2,表示从A2A547如果等于A2返回TRUE否则返回FALSE,第二个参数是A2<>"",同样为空则返回FALSE否则返回TRUE,而TRUE代表1FALSE代表0,多项乘积之和就是最后得到的该单元格在该区域的重复个数。

同样该条件格式应用的区域从A2开始,同时由于应用的是整列单元格所以$A$2:$A$547必须加绝对应用,而A2则为相对引用。

 

   这就是EXCEL中的真假重复问题,不知道的小伙伴们很容易被系统所迷惑,觉得有用的话赶紧收藏起来吧!

 

小编的疑惑:为何数字超过15位后用COUNTIF出现假重复,而用SUMPRODUCT没有出现?

两个函数,都是建立在$A$2:$A$547的值是否等于A2的判断上进行的,为何COUNTIF会出现假重复,而SUMPRODUCT不会出现假重复?

 

欢迎加入QQ群:264539405交流学习下载素材。

Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!

扫下方二维码关注公众号,可随时随地学习Excel

http://www.itblw.com/ewebeditor/uploadfile/20180914164059384001.png

相关推荐:

快速统计不重复数《1分钟搞定不重复数统计

5个查重复的案例《countif函数的使用方法以及countif函数查重复等5个案例分享