【Excel公式07】COUNT/COUNTA/COUNTIF/COUNTIFS 计数统计
2026/6/10 14:08:32 网站建设 项目流程

写完求和、查找、判断后,计数函数在做表的过程中用的还是蛮多的。

说真的,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, "销售部")
  • 避免在多个公式中使用整列引用

实践总结

  1. 选择正确的函数

    • 统计数字:用 COUNT
    • 统计总记录数:用 COUNTA
    • 单条件计数:用 COUNTIF
    • 多条件计数:用 COUNTIFS
  2. 正确书写条件

    • 文本条件必须加双引号
    • 比较运算符和值之间不要有空格
    • 引用单元格时使用&连接符:">"&F2
  3. 注意数据类型一致性

    • 确保查找值和查找区域的数据类型一致
    • 避免文本型数字和数字型数字混合使用
  4. 优化公式性能

    • 避免使用整列引用,使用精确的区域引用
    • 不要在大量单元格中使用复杂的数组公式
    • 使用命名区域让公式更易读、更易维护
  5. 处理错误和异常

    • 使用 IFERROR 函数美化错误显示
    • 明确处理空值和空字符串的情况
    • 对统计结果进行验证,确保准确无误

总结

  • COUNTA行数统计用得最频繁
  • COUNTIF是入门必会
  • COUNTIFS才是重点,尤其多范围对齐条件拼接要注意

系列目录

  1. ✅ 【Excel公式01】SUMIF单条件求和
  2. ✅ 【Excel公式02】SUMIFS多条件求和
  3. ✅ 【Excel公式03】VLOOKUP查找函数
  4. ✅ 【Excel公式04】INDEX+MATCH灵活查找
  5. ✅ 【Excel公式05】XLOOKUP新一代查找函数
  6. ✅ 【Excel公式06】IF/IFS/IFERROR判断函数
  7. ✅ 【Excel公式07】COUNT/COUNTA/COUNTIF/COUNTIFS 计数统计(本篇)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询