无论是统计数字的个数,还是基于特定条件的计数,或是进行复杂的去重计数等等,Excel都提供了多种函数来满足我们的需求。今天,我将分享COUNT及相关函数的计数技巧,从基础到高级,让你轻松掌握计数统计。
一、基础计数
COUNT:数字计数
COUNT函数用于计算指定范围内数字的个数。
COUNTA:非空值计数
COUNTA函数用于计算指定范围内非空单元格的个数,无论是数字、文本还是其他类型的数据,只要单元格非空,都会被计算在内。
COUNTBLANK: 空白单元格计数
与COUNTA相反,COUNTBLANK函数用于计算指定范围内空白单元格的个数。
如下图所示:D2=COUNT(C2:C16),统计C列的数字个数;D4=COUNTA(B2:B16),统计B2:B16的非空单元格个数;D6=COUNTBLANK(B2:B16),统计B2:B16的空白单元格个数。

二、条件计数
COUNTIF:单条件计数
COUNTIF函数用于根据指定条件对指定范围内的单元格进行计数。如下图所示,统计C列得分大于80的个数,D2=COUNTIF(C2:C16,">80")。
COUNTIFS: 多条件计数
COUNTIFS函数可以设置多个范围和对应的条件,方便地实现多条件计数。如下图所示,统计C列得分大于80,B列课程是语文的个数:D4=COUNTIFS(C2:C16,">80",B2:B16,"=语文")。

三、高级计数技巧
不重复计数:COUNT+MATCH+ROW
对于不重复值的计数,可以使用MATCH和ROW函数结合实现。如下图所示,统计A列有几名同学:D2=COUNT(0/(MATCH(A2:A15,A2:A15,)=ROW(A1:A14))),通过MATCH函数找到每个值在范围内的位置,并与ROW函数生成的序列进行比较,从而筛选出不重复的值进行计数。
也可以使用SUMPRODUCT+COUNTIF的函数组合,例如,统计B列有几门课程:D4=SUMPRODUCT(1/COUNTIF(B2:B15,B2:B15))
如果可以使用新函数UNIQUE的话,就简单多了,例如,统计A列有几名同学:D7=COUNTA(UNIQUE(A2:A15))。

MATCH(A2:A15,A2:A15,0):对A2:A15范围内的每个单元格值进行查找,返回它们在A2:A15范围内的相对位置,如果某个值在是唯一的,返回它的行号;如果值重复出现,会返回第一次出现的位置;
MATCH(...)=ROW(A1:A14):返回逻辑数组,比较返回的位置与Row函数单元格的行号是否相等。不重复的值,返回TRUE;重复的值,除了第一次出现外,其他重复项返回FALSE;
0/MATCH(...):0除以上述逻辑数组,除以True返回0,除以FALSE返回错误值#DIV/0!;
COUNT(...):统计上述数组的数字个数,即0的个数。
重复项计数:SUM+COUNTIF+UNIQUE
可以使用SUM、COUNTIF和UNIQUE统计条件重复项的个数,例如,需要统计选课数大于3门的同学人数:
D2=SUM((COUNTIF(UNIQUE(A2:A15),A2:A15)>=3)*1)。

UNIQUE(A2:A15):返回 A2:A15 范围内不重复姓名的数组,即{张三,李四,王五,赵六,钱七};
COUNTIFS(A2:A15,UNIQUE(A2:A15)):返回A2:A15姓名重复个数的数组, 即{1,2,3,4,4};
COUNTIFS(...)>=3:返回逻辑数组,即判断上述数组中大于等于3的元素,即{FALSE,FALSE,TRUE,TRUE,TRUE};
(COUNTIFS(...))*1:将逻辑数组中的 TRUE 和 FALSE 转换为数字1和0,即{0,0,1,1,1};
SUM(...):将上述数组中的所有数字相加,从而得到 A2:A15范围内姓名出现次数大于或等于3的数量。
合并单元格计数:COUNTA+SUM
如下所示,在C列合并单元格中统计课程门数,先选中C2:C12合并单元格区域,C2输入公式:=COUNTA(B2:B12)-SUM(C3:C12),然后同时按下CTRL+ENTER键填充公式。

希望这篇文章对你有帮助,您的点赞和收藏是我持续更新文章的最大动力,感谢您的支持。