写完求和、查找、判断后,计数函数在做表的过程中用的还是蛮多的。
说真的,COUNT 被严重低估了。多数人一提计数,第一反应是"这有啥好学的,不就数数嘛"。但你打开一张万行大表,要数某个产品在不同区域的复购客户数、要数某部门本月迟到超3次的人有多少、要看日活趋势——你就知道COUNT是真正的"业务算账"工具。
这一篇,我把整个计数函数了解下 :COUNT、COUNTA、COUNTBLANK、COUNTIF、COUNTIFS,也是工作时遇到的常用 以及后期扩展到整个 计数函数。
为什么 COUNT 家族是 Excel 必备技能?
在任何数据处理工作中,计数都是最基础、最频繁的操作。无论是制作报表、分析数据还是核对信息,你都离不开计数统计:
- 人力资源:统计各部门员工人数、男女比例、转正人数
- 销售:统计各地区订单数、不同价格区间的产品数、本月新增客户数
- 财务:统计发票数量、报销单数量、大于 1000 元的支出笔数
- 运营:统计每日访问量、不同渠道的用户数、转化率
COUNT 的四个函数分工明确,配合默契:
- COUNT:统计数字单元格数量
- COUNTA:统计非空单元格数量
- COUNTIF:单条件计数
- COUNTIFS:多条件计数
掌握了这四个函数,你就拥有了一套完整的计数统计工具箱,可以应对任何复杂的计数场景。
一、COUNT:只数数字
语法:
=COUNT(value1, [value2], ...)- value1:必需,要统计的第一个单元格或区域
- value2
, ...:可选,最多可以指定 255 个单元格或区域
关键特点
- ✅ 统计:数字、日期、时间
- ❌ 忽略:文本、逻辑值(TRUE/FALSE)、空单元格、错误值
基础示例
=COUNT(A1:A10) // 统计员工编号数量,返回9(A1是文本"员工编号") =COUNT(D1:D10) // 统计工资列的数字数量,返回9 =COUNT(F1:F10) // 统计入职日期数量,返回9(日期本质是数字) =COUNT(B1:B10) // 统计姓名列,返回0(姓名是文本)2. COUNTA 函数:统计所有非空单元格
COUNTA 函数的作用是:统计指定区域中所有非空单元格的数量。无论单元格中是数字、文本、逻辑值还是错误值,只要不是空的,都会被统计。
基本语法
COUNTA(value1, [value2], ...)关键特点
- ✅ 统计:数字、文本、日期、逻辑值、错误值
- ❌ 忽略:完全空的单元格
基础示例
=COUNTA(A1:A10) // 统计A列非空单元格,返回10(包含表头) =COUNTA(B1:B10) // 统计姓名列,返回10 =COUNTA(A1:F10) // 统计整个表格的非空单元格,返回60常见用法:统计总记录数
这是 COUNTA 最常用的场景,用于统计表格中的数据总行数:
=COUNTA(A:A)-1 // 减去表头行,得到实际数据行数3. COUNTIF 函数:单条件计数
COUNTIF 函数是 COUNT 家族中最常用的一个,它的作用是:统计指定区域中满足单个条件的单元格数量。
基本语法
COUNTIF(range, criteria)参数解释
range:必需,要统计的单元格区域criteria:必需,统计条件,可以是数字、文本、表达式或单元格引用
基础示例
=COUNTIF(C:C, "销售部") // 统计销售部人数,返回3 =COUNTIF(D:D, ">8000") // 统计工资大于8000的人数,返回6 =COUNTIF(E:E, "女") // 统计女员工人数,返回4 =COUNTIF(F:F, ">2023/1/1") // 统计2023年以后入职的人数,返回5条件写法大全
COUNTIF 的条件非常灵活,以下是最常用的条件格式:
| 想做什么 | 公式 | 备注 |
|---|---|---|
| 等于"男" | =COUNTIF(B:B, "男") | 文本要加引号 |
| 等于100 | =COUNTIF(B:B, 100) | 数字直接写 |
| 大于100 | =COUNTIF(B:B, ">100") | 比较运算要加双引号 |
| 大于等于100 | =COUNTIF(B:B, ">=100") | |
| 不等于"男" | =COUNTIF(B:B, "<>男") | <>表示不等于 |
| 包含"张" | =COUNTIF(B:B, "*张*") | *通配任意字符 |
| 以"张"开头 | =COUNTIF(B:B, "张*") | |
| 任意两字 | =COUNTIF(B:B, "??") | ?通配单个字符 |
| 等于B1的值 | =COUNTIF(B:B, B1) | 直接引用 |
| 大于B1的值 | =COUNTIF(B:B, ">"&B1) | 引用+比较运算要用&拼接 |
4. COUNTIFS 函数:多条件计数
COUNTIFS 函数是 COUNTIF 的升级版,它的作用是:统计指定区域中同时满足多个条件的单元格数量。所有条件之间是逻辑与的关系,即必须同时满足所有条件才会被统计。
基本语法
COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)参数解释
criteria_range1:必需,第一个条件对应的区域criteria1:必需,第一个条件criteria_range2, criteria2, ...:可选,最多可以指定 127 个条件对
基础示例
=COUNTIFS(C:C, "销售部", E:E, "女") // 统计销售部女员工人数,返回1 =COUNTIFS(C:C, "技术部", D:D, ">10000") // 统计技术部工资大于10000的人数,返回1 =COUNTIFS(E:E, "男", F:F, ">2023/1/1") // 统计2023年以后入职的男员工人数,返回2 =COUNTIFS(D:D, ">=8000", D:D, "<=10000") // 统计工资在8000到10000之间的人数,返回6四个函数核心对比
为了让你更清晰地理解四个函数的区别和适用场景,我们做了一个详细的对比表格:
| 函数 | 统计范围 | 条件支持 | 适用场景 |
|---|---|---|---|
| COUNT | 只统计数字单元格 | 无条件 | 统计数字、日期、时间的数量 |
| COUNTA | 统计所有非空单元格 | 无条件 | 统计总记录数、非空单元格数量 |
| COUNTIF | 统计满足单个条件的单元格 | 单条件 | 简单的单条件计数 |
| COUNTIFS | 统计同时满足多个条件的单元格 | 多条件(逻辑与) | 复杂的多条件计数 |
进阶实战技巧
掌握了基础用法后,我们来学习一些高级技巧,让 COUNT 家族发挥更大的威力。
1. 通配符模糊计数
COUNTIF 和 COUNTIFS 支持使用通配符进行模糊计数:
*:匹配任意多个字符?:匹配任意单个字符~:转义字符,用于查找 * 或?本身
示例:
=COUNTIF(B:B, "张*") // 统计所有姓"张"的员工,返回1 =COUNTIF(B:B, "?三") // 统计名字第二个字是"三"的员工,返回1 =COUNTIF(B:B, "*小*") // 统计名字中包含"小"字的员工2. 不重复值计数
统计不重复值是日常工作中非常常见的需求,以下是两种常用方法:
方法一:适用于所有 Excel 版本
=SUMPRODUCT(1/COUNTIF(A2:A10, A2:A10))解释:
COUNTIF(A2:A10, A2:A10):统计每个值出现的次数1/COUNTIF(...):将次数转换为倒数(出现 n 次则值为 1/n)SUMPRODUCT:将所有倒数相加,得到不重复值的数量
方法二:适用于 Excel 365 及以上版本
=COUNTA(UNIQUE(A2:A10))解释:
UNIQUE(A2:A10):提取 A 列中的不重复值COUNTA:统计不重复值的数量
3. 多条件 "或" 计数
COUNTIFS 默认只支持 "逻辑与" 的多条件计数,如果需要 "逻辑或" 的计数,需要使用多个 COUNTIF 相加。
示例:统计销售部和技术部的总人数
=COUNTIF(C:C, "销售部")+COUNTIF(C:C, "技术部")示例:统计工资小于 8000 或大于 10000 的人数
=COUNTIF(D:D, "<8000")+COUNTIF(D:D, ">10000")4. 按日期区间计数
COUNTIF 和 COUNTIFS 非常适合按日期区间进行统计:
示例:统计 2023 年第一季度入职的人数
=COUNTIFS(F:F, ">=2023/1/1", F:F, "<=2023/3/31")示例:统计本月入职的人数
=COUNTIFS(F:F, ">="&EOMONTH(TODAY(),-1)+1, F:F, "<="&TODAY())5. 与其他函数结合使用
COUNT 家族可以和几乎所有 Excel 函数结合使用,处理更复杂的场景:
示例:判断员工编号是否重复
=IF(COUNTIF(A:A, A2)>1, "重复", "唯一")示例:计算各部门人数占比
=COUNTIF(C:C, "销售部")/COUNTA(A2:A10)常见错误及解决方案
COUNT 家族虽然简单,但也有一些新手容易犯的错误。以下是最常见的几种错误及解决方法:
1. 统计结果为 0 或不正确
最常见原因:条件格式错误,特别是文本条件没有加引号。
解决方案:
- 文本条件必须加双引号:
COUNTIF(C:C, 销售部)→COUNTIF(C:C, "销售部") - 数字条件可以不加引号,但建议加上:
COUNTIF(D:D, ">8000") - 条件中引用单元格时不要加引号:
COUNTIF(D:D, ">"&F2)
2. 空值和空字符串的区别
问题:COUNTA 会统计包含空字符串("")的单元格,但不会统计完全空的单元格。
解决方案:
- 统计真正的空单元格:
COUNTBLANK(range) - 统计非空且非空字符串的单元格:
COUNTIF(range, "<>")
3. 文本型数字的处理
问题:COUNT 函数不会统计文本型数字,COUNTIF 统计文本型数字和数字型数字时可能会有差异。
解决方案:
- 将文本型数字转换为数字型:
VALUE(text) - 统一数据类型后再进行统计
4. 跨表计数错误
问题:跨工作表或跨工作簿计数时,公式会出错。
解决方案:
- 正确使用跨表引用格式:
COUNTIF(Sheet2!A:A, "销售部") - 确保引用的工作表或工作簿存在且未被重命名
5. 整列引用的性能问题
问题:使用 A:A 这样的整列引用会严重影响公式性能,特别是在大数据量时。
解决方案:
- 尽量使用精确的区域引用:
COUNTIF(A2:A10000, "销售部") - 避免在多个公式中使用整列引用
实践总结
选择正确的函数:
- 统计数字:用 COUNT
- 统计总记录数:用 COUNTA
- 单条件计数:用 COUNTIF
- 多条件计数:用 COUNTIFS
正确书写条件:
- 文本条件必须加双引号
- 比较运算符和值之间不要有空格
- 引用单元格时使用
&连接符:">"&F2
注意数据类型一致性:
- 确保查找值和查找区域的数据类型一致
- 避免文本型数字和数字型数字混合使用
优化公式性能:
- 避免使用整列引用,使用精确的区域引用
- 不要在大量单元格中使用复杂的数组公式
- 使用命名区域让公式更易读、更易维护
处理错误和异常:
- 使用 IFERROR 函数美化错误显示
- 明确处理空值和空字符串的情况
- 对统计结果进行验证,确保准确无误
总结
- COUNTA行数统计用得最频繁
- COUNTIF是入门必会
- COUNTIFS才是重点,尤其多范围对齐和条件拼接要注意
系列目录:
- ✅ 【Excel公式01】SUMIF单条件求和
- ✅ 【Excel公式02】SUMIFS多条件求和
- ✅ 【Excel公式03】VLOOKUP查找函数
- ✅ 【Excel公式04】INDEX+MATCH灵活查找
- ✅ 【Excel公式05】XLOOKUP新一代查找函数
- ✅ 【Excel公式06】IF/IFS/IFERROR判断函数
- ✅ 【Excel公式07】COUNT/COUNTA/COUNTIF/COUNTIFS 计数统计(本篇)