分享

统计符合条件的个数,别忘了COUNTIF

 hercules028 2020-01-16


小伙伴们好啊,今天老祝和大家一起来学习COUNTIF函数。
这个函数只有两个参数,第一个参数是要对其进行计数的数据区域,这里只能是一个或多个单元格的范围引用,第二个参数是进行计数的条件,可以是数字、表达式、单元格引用或文本字符串。
这个函数的帮助文件比较简单,但是在实际的应用中,通过对第二参数的变化,可以满足我们多种计数需求。
下面咱们就用一组数据,来学习一下COUNTIF函数的常用设置。

1、=COUNTIF(A2:A15,12)
返回A2:A15单元格区域中,等于12的单元格数量。

2、=COUNTIF(A2:A15,'<0')
返回A2:A15单元格区域中,负值的单元格数量。

3、=COUNTIF(A2:A15,'<>0')
于返回A2:A15单元格区域中,不等于0的单元格数量。

4、=COUNTIF(A2:A15,A2)
返回A2:A15单元格区域中,等于单元格A2中内容的单元格数量。

5、=COUNTIF(A2:A15,'>'&A2)
返回A2:A15单元格区域中,大于单元格A2中内容的单元格数量。
注意这里在比较运算符“>”和单元格引用“A2”之间,用文本连接符“&”进行连接。而不能写成=COUNTIF(A2:A15,> A2)。

6、=COUNTIF(A2:A15,'????')
返回A2:A15单元格区域中,4个字符长度的文本个数。
公式中的“?”是占位符,一个“?”表示一个字符长度。

7、=COUNTIF(A2:A15,'*e*')用于返回A2:A15单元格区域中,包含字符'e'内容的单元格数量。
公式中的“*”也是占位符的一种,一个“*”表示任意字符长度。注意这里的统计结果,不区分条件字符'e'的大小写。

8、=COUNTIF(A2:A15,'e*')
返回A2:A15单元格区域中,以字母'e'开头内容的单元格数量。这里的统计结果,也不区分条件字符'e'的大小写。

9、=COUNTIF(A2:A15,TODAY())
返回A2:A15单元格区域中,等于当前日期的单元格数量。
TODAY()返回的结果是当前的系统日期。

10、=COUNTIF(A2:A15,'<>')
返回A2:A15单元格区域中不为空的单元格个数,这里的结果包含A13单元格的假空''。

11、=COUNTIF(A2:A15,'>=!')
判断条件'>=!'表示不等于“真空”的文本。返回A2:A15单元格区域中非空文本个数,也就是A6 A7 A9 A10单元格。

12、=COUNTIF(A2:A15,TRUE)
返回A2:A15单元格区域中逻辑值为“TRUE”的个数。(A11单元格)

13、=COUNTIF(A2:A15,'=')
返回A2:A15单元格区域中真空单元格个数(A15单元格)
 
COUNTIF函数只能针对单个条件进行统计,通过解法的变通,可以统计同一区域中由两个边界值所指定的数据个数。
如下图所示,要求统计出销售金额大于50000且小于100000的人数。
可以使用下面的公式:
=SUM(COUNTIF(B2:B10,{'>50000';'>100000'})*{1;-1})
在销售金额中,'>50000'的记录数一定包含'>100000'的记录,因此该公式使用常量数组{'>50000';'>100000'}作为统计条件,即分别对'>50000'和'>100000'的数据进行统计,再利用乘以{1;-1}实现两者相减,最后得出结果为3。
当然啦,这个例子用COUNTIFS是最简单的了:
COUNTIF(B2:B10,'>50000',B2:B10,'>100000')

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。

怎么样,你学会了吗?
图文制作:祝洪忠

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多