摘要:小伙伴们,COUNTIF 函数能帮咱们数出一个区域里符合特定条件的单元格有多少个,一般是这么写:
小伙伴们,COUNTIF 函数能帮咱们数出一个区域里符合特定条件的单元格有多少个,一般是这么写:
=COUNTIF(要检查哪些区域, 要查找什么内容? )
接下来咱们就学习几个COUNTIF函数的典型应用。
1、使用表达式作为统计条件
=COUNTIF(B2:B7,">5")
2、以单元格中的值作为统计条件
=COUNTIF(B2:B7,">"&D2)
3、统计空白单元格数
=COUNTIF(A2:A10,"=")
4、统计非空单元格数
=COUNTIF(B2:B7,"")
5、统计包含关键字的个数
=COUNTIF(B2:B7,"*"&D1&"*")
6、统计各部门人数
如下图所示,希望根据A~D列的数据,在G列统计出各部门的人数。
=COUNTIF(B:B,F3)
公式里的 B:B 意思是把 B 列整个都引用了。这个公式会在 B 列的整列里,数一数和 F3 单元格里内容一样的单元格有多少个。
7、统计身份证号码是否重复
=IF(COUNTIF(B$2:B$9,B2&"*")>1,"重复","不重复")
COUNTIF 函数在算文本型数字的时候,会默认当成数值型来处理。可 Excel 里数字的精度就只有 15 位,而身份证号码是 18 位呀,所以会把前 15 位一样的身份证都当成是相同的。在第二参数后面连上一个通配符&”*”,因为数值不能用通配符,这样就能只找包含 A2 单元格内容的文本啦。通过这种灵活变通的办法,COUNTIF 函数就乖乖听话喽。
8、按部门添加序号
如下图所示,希望根据C列的部门,在A列添加序号,并且要求每个部门从1开始单独编号。
=COUNTIF(C$1:C2,C2)
COUNTIF 函数的第一个参数是“C$1:C2”,这里面“C$1”那部分把行号给锁定住了,“C2”那部分没锁定行号。要是把这个公式往下复制,就会依次变成“C$1:C3”、“C$1:C4”、“C$1:C5”……
第二参数“C2”,是公式所在单元格的左侧相邻单元格。
COUNTIF函数在这个动态扩展的范围内,统计有多少个与左侧相邻单元格相同的单元格。
9、判断所在部门
如下图所示,B列是一些带有部门名称的混合字符串,希望根据E列的对照表,从B列内容中提取出部门名称。
=INDEX(E$2:E$6,MATCH(1,COUNTIF(B2,"*"&E$2:E$6&"*"),))
COUNTIF第一参数为B2单元格,统计条件为"*"&E$2:E$6&"*",统计条件中的星号表示通配符,也就是在B2单元格中,分别统计包含E$2:E$6部门名称的个数,结果为:
{1;0;0;0;0}
再使用MATCH函数,在以上内存数组中查找1的位置。
最后使用INDEX函数,在E$2:E$6单元格区域中,根据MATCH函数的位置信息,返回对应位置的内容。
10、统计有几个部门参赛
就像下面这张图显示的那样,这是某单位员工体育比赛的参赛人员名单。咱们希望能统计一下有多少个参赛的部门,也就是 C 列里那些不重复的部门数量。
=SUMPRODUCT(1/COUNTIF(C2:C17,C2:C17))
COUNTIF函数的统计区域和统计条件都是C2:C17,表示在C2:C17单元格区域中,分别统计每个单元格出现的次数。结果为:
{2;2;3;3;3;……;4;4;4;4}
接下来用1除以以上内存数组,得到这些内存数组的倒数。{1/2;1/2;1/3;1/3;1/3;……;1/4;1/4;1/4;1/4}
最后再对这些倒数求和,如果某个单元格出现了两次,这一步对应两个二分之一,求和结果为1。如果某个单元格出现了三次,三个三分之一的求和结果也是1……。
如下图所示,左侧是员工信息,F列是经理亲戚。需要在H列提取出所有不是经理亲戚的员工名单。
=FILTER(B2:C17,COUNTIF(F2:F5,B2:B17)=0)
先使用COUNTIF(F2:F5,B2:B17),统计B2:B17单元格区域中的姓名,在F列经理亲戚列表中出现的次数,结果返回1或者0。
{0;1;0;0;0;1;0;0;1;0;0;1;0;0;0;0}
FILTER函数的筛选条件为以上内存数组结果=0,筛选出B2:C17中符合条件的内容。
提示:FILTER函数在Excel 2021以及以上版本才能使用。
图文制作:祝洪忠
来源:Excel之家