一起认识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“重复”,否则返回空值。运算的结果如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。
怎么样,你学会了吗?
在实际工作中,如果数据量比较大的情况下,往往会让我们眼花缭乱,难免将数据张冠李戴,出现错误。如下图所示,不同部门的数据如果用颜色突出显示,可以很方便我们区分,让数据看起来更加清晰明了。
那这样的效果如何实现呢?就把这个问题留给大家来思考吧。(可不要告诉我,目测后设置颜色哦)
* 本教程部分内容选自Excel Home编著的《Excel 2010函数与公式实战技巧精粹》
COUNTIF版权声明
本文来自投稿,不代表本站立场,转载请注明出处。