excel Countif函数的小秘密
发布时间:2023-08-23 18:24:31
发现这样一个问题,在使用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“重复”,否则返回空值。运算的结果如E列所示。
可是当我们仔细检查时就会发现,B2和B11单元格的身份证号码是完全相同的,因此函数结果判断为重复,但是B6单元格只有前15位号码和B2、B11单元格内容相同,函数结果仍然判断为重复,这显然是不正确的。
我们来看一下究竟是什么原因呢?
虽然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就像一个忠实的士兵,能不能打胜仗,关键还是要看我们怎么指挥的。
除了在第二参数后面加通配符的方法以外,也可使用以下数组公式完成计算:
{=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函数求和。通过这样迂回的方法完成是否重复的判断。
如何运用COUNTIF函数统计数据区域中的不重复个数:
下面就简单学习一下,怎么处理这个不重复数量的统计问题。
可以使用这个数组公式(别忘了,数组公式需要按下Shift+Ctrl Enter才可以哦):
{=SUM(1/COUNTIF(A2:A14,A2:A14))}
怎么去理解这个公式呢?{=SUM(1/COUNTIF(区域,区域))}是计算区域中不重复值个数的经典公式。
1、公式中“COUNTIF(A2:A14,A2:A14)”部分是数组计算,运算过程相当于:
=COUNTIF(A2:A14,A2)
=COUNTIF(A2:A14,A3)
……
=COUNTIF(A2:A14,A14)
结果为数组{2;2;1;1;2;1;1;1;1;2;2;2;1},表示区域中等于本单元格数据的个数。
2 、“1/{2;2;1;1;2;1;1;1;1;2;2;2;1}”部分的计算结果为{0.5;0.5;1;1;0.5;1;1;1;1;0.5;0.5;0.5;1},用1除以个数,是本公式的核心,要结合前后计算才能领会好它的作用。为便于理解,把这一步的结果整理一下,用分数代替小数,结果为:{1/2;1/2;1;1;1/2;1;1;1;1;1/2;1/2;1/2;1}。
如果单元格的值在区域中重复出现两次,这一步的结果就有两个1/2。如果单元格的值在区域中重复出现3次,结果就有3个1/3,如此类推。
3、最后用SUM函数求和,计算结果为10。
怎么样,你学会了吗?
在实际工作中,如果数据量比较大的情况下,往往会让我们眼花缭乱,难免将数据张冠李戴,出现错误。如下图所示,不同部门的数据如果用颜色突出显示,可以很方便我们区分,让数据看起来更加清晰明了。
那这样的效果如何实现呢?就把这个问题留给大家来思考吧。(可不要告诉我,目测后设置颜色哦)
猜你喜欢
- 在excel2019中移动工作表可以将工作表移动到当前工作薄,当然也可以将工作表移动到其他的工作薄中,而且还可以通过在excel2019中移
- 找到word模板路径的位置后,我们可以给word模板删除,同时可以修改word模板路径,下面小编教大家怎么做。打开word文档,点击左上角的
- 大家知道,Excel中的RANK函数可以获取某个数值在其所在区域中的排名,但有时区域中可能包含错误,这时RANK函数会返回错误而无法得到正确
- 经常使用到Word文档的小伙伴有时候会需要在文档中插入一定的分隔线。其实,在Word文档中,我们可以通过输入不同的符号,快速绘制一些不同的分
- 以上就是word2010打不开RuntimeError报错R6031的解决方法,希望能对大家有所帮助昨天在win10上安装了office20
- 如何在Word 2016中使用页面设置对话框?如果要在Word 2016中对页面格式进行更多控制,则必须召唤“页面设置”对话框。具体来说,您
- win10有个很方便的投影仪功能,大家有投影仪的话,是需要用到这个功能来设置的。如果在使用中出现各种小问题,也是能通过这里边的设置来解决的,
- 使用审阅功能的步骤如下:步骤一:打开word2010.点击最上面的菜单,选择审阅,如下图所示 步骤二:原文如下图所
- 当我们每天使用键盘时,我们总是会遇到各种各样的键盘问题,其中许多已经更新了win10系统,更重要的是,当键盘么办?下面一起来看看具体的解决方
- win10磁盘碎片整理是我们经常会使用的一项功能,它能删掉一些没用的临时文件,腾挪更多内存空间出来,从而使得电脑运行速度更快。今天小编就给大
- 在Word文档的编辑中,经常会给段落添加编号,但是在编号的使用过程中我们会遇到很多问题,今天给大家分享word怎么设置编号值的操作方法,一起
- 在Excel中,通过柱形图实现数据的展示是一个很不错的想法。但是,普通的柱形图总是让人感到乏味或平淡无奇。如果将普通的柱形图进行一些有趣的样
- 使用Word编辑表格的时候,我们一定会遇到多页表格使用同一个标题行的情况,这时如果一个一个设置的话,会非常麻烦,同时也会出错。我们可以设置W
- 有时我们需要在Excel工作表中隔行插入一个空行,假如行数较多的话,手工逐一插入空行太繁琐。用下面的方法就可以快速隔行插入一个空行:&nbs
- 方法其实非常简单,你只需要通过“+-+”,然后回车就能立即添加了表格。“+”表示一列,“-”表示每一列的宽度。比方说,“+-+-+”就会给你
- 许多使用Windows系统的用户Werfault.exe文件应用程序错误,无法正常打开应用程序,情况如何?实际上,我们只需要打开window
- 在Excel中有时候为了提高工作效率就会直接饮用其他表的单元格数据,这个功能也是比较常见的,如果不会的朋友,不妨学习学习,下面是由小编分享的
- 利用内容重排和分列实现简单的提取数字,以达到方便工作的目的,对于刚从其它版本转型过来的应该就不会太懂吧,没关系,接下来就让小编就教你怎么在我
- word表格中,自动编号后面的制表符用退格键去不掉,用替换功能也替换不了,那怎么办呢?下面小编给大家介绍两种方法如图所示:编号后面的制表符图
- Word中支持许多种格式,常见的如:doc、txt、htm、dot、xml、rtf、wps等等。在Word中我们可以在工具栏命令打开这些格式