GUIDE

Excel COUNTIF 怎么用?按条件统计个数,5个场景讲明白

2026.03.25 · 阅读 7 分钟

COUNTIF 做一件事:数一数满足条件的单元格有几个。"这批订单里有多少是已发货的?""技术部有多少人?""成绩表里 90 分以上有几个?"——这些都是 COUNTIF 的典型场景。

COUNTIF 处理单条件,COUNTIFS 处理多条件。两个函数语法几乎一样,学会一个就全会了。

COUNTIF:单条件计数

语法:=COUNTIF(范围, 条件)

场景一:统计某个部门的人数

姓名部门
张三技术部
李四销售部
王五技术部
赵六市场部
钱七技术部

=COUNTIF(B:B, "技术部") → 结果:3

意思是:在 B 列中,数一数值等于"技术部"的单元格有几个。

场景二:统计 60 分以上有几人

=COUNTIF(C:C, ">=60") → 统计 C 列中 ≥60 的单元格数量

注意:当条件包含比较运算符(>、<、>=、<=、<>)时,整个条件必须用英文双引号包裹,包括运算符。写成 =COUNTIF(C:C, >=60)(不带引号)会报错。

场景三:统计包含某关键词的项目

=COUNTIF(A:A, "*设计*") → 统计 A 列中包含"设计"两个字的单元格数量

星号 * 是通配符,代表任意字符。"*设计*" 表示"前后有任意字符,中间包含设计"。还有一个通配符 ? 代表单个字符:"张?" 匹配"张三"、"张五"但不匹配"张三丰"。

场景四:统计非空单元格

=COUNTIF(A:A, "<>") → 统计 A 列中非空的单元格数量

<> 是"不等于"运算符,"<>" 表示"不等于空"。注意这会把空格(看起来像空但其实有内容)也算进去。如果想统计纯空单元格数量,用 =COUNTBLANK(A:A)

场景五:统计重复值出现次数

在数据旁边写 =COUNTIF(A:A, A2),然后往下拖——每一行会显示该值在 A 列中出现了几次。出现次数 >1 的就是重复值。这是 Excel 中查找重复数据最简单的方法。

COUNTIFS:多条件计数

语法:=COUNTIFS(范围1, 条件1, 范围2, 条件2, ...)

COUNTIFS 要求所有条件同时满足才计入。

统计技术部中工资 >8000 的人数:

=COUNTIFS(B:B, "技术部", C:C, ">8000")

统计 3 月份已发货的订单数:

=COUNTIFS(A:A, ">="&DATE(2026,3,1), A:A, "<"&DATE(2026,4,1), D:D, "已发货")

注意这里 A 列(日期列)出现了两次——一次用 >= 指定起始日期,一次用 < 指定结束日期,两个条件叠加形成日期范围筛选。

COUNTIF vs COUNTIFS vs COUNTA

函数用途示例
COUNTIF单条件计数=COUNTIF(B:B,"技术部")
COUNTIFS多条件计数=COUNTIFS(B:B,"技术部",C:C,">8000")
COUNTA非空计数(无条件)=COUNTA(A:A)
COUNT纯数字计数=COUNT(C:C) 只统计数字,忽略文本和空格
COUNTBLANK空单元格计数=COUNTBLANK(A:A)

实战公式速查

需求公式
某个值出现了几次=COUNTIF(A:A, "目标值")
大于某个数的有几个=COUNTIF(C:C, ">100")
包含某关键词的有几个=COUNTIF(A:A, "*关键词*")
去重后有多少不同的值=SUMPRODUCT(1/COUNTIF(A2:A100,A2:A100))
某部门某月的订单数=COUNTIFS(部门列,"销售部",日期列,">="&起始日期,日期列,"<"&结束日期)
两列都满足条件的行数=COUNTIFS(B:B,"条件1",C:C,"条件2")

COUNTIF 配合条件格式:高亮重复值

COUNTIF 不仅能在公式里用,还能配合条件格式自动高亮重复数据。操作步骤:选中数据区域 → 开始 → 条件格式 → 新建规则 → 使用公式确定格式 → 输入 =COUNTIF($A:$A,$A2)>1 → 设置高亮颜色。

这样所有出现超过 1 次的值都会自动标红。修改数据后高亮会实时更新。在清洗数据、检查导入是否有重复记录时非常实用。

跟对账工具的配合

如果你用 COUNTIF 是为了检查两张表的数据是否一致(比如检查 A 表的订单号是否都在 B 表中出现),可以直接用 Data Diff Lab(数据对账)——上传两张表,选主键,工具自动告诉你哪些行只在 A 表有、哪些只在 B 表有、哪些值不一致。不需要手写 COUNTIF 或 VLOOKUP。

COUNTIF 适合简单的单列统计;当你需要多列对比、批量核对时,专用的对账工具效率更高。详见 《两张Excel对不上?2种对账方式一文搞懂》

常见错误

条件写法错误

运算符必须包在引号里:">=60" 是对的,>=60(不带引号)是错的。如果条件引用单元格,用拼接:">"&E1(E1 里填数字)。

范围大小不一致(COUNTIFS)

COUNTIFS 的所有条件范围必须大小相同。=COUNTIFS(A1:A100,"条件1",B1:B50,"条件2") 会报错——A 列 100 行,B 列只有 50 行。解决方法:统一用整列(A:A, B:B)或确保行数一致。

文本数字混淆

如果 B 列的数据看起来是数字但实际是文本格式(常见于从系统导出的数据),=COUNTIF(B:B, ">60") 不会统计这些"文本数字"。在 B 列任意空单元格输入 0,复制,然后选中 B 列数据 → 选择性粘贴 → 加 → 确定,可以强制转换为数字格式。

通配符想当普通字符用

如果你要统计的文本本身包含星号或问号(比如"5*3=15"),需要用波浪号转义:=COUNTIF(A:A, "*5~*3*")~* 表示"真正的星号"。

COUNTIF 的性能问题

在大数据量(10 万行以上)中使用 COUNTIF 时要注意性能:

避免整列引用做条件判断=COUNTIF(A:A, A2) 写在每一行,相当于每行都要扫描整个 A 列,10 万行数据就是 10 万次全列扫描。如果 Excel 变卡,把范围改为固定范围:=COUNTIF($A$2:$A$100000, A2)

COUNTIFS 比多个 COUNTIF 相乘更快:有些人用 =COUNTIF(A:A,"条件1")*COUNTIF(B:B,"条件2") 来模拟多条件——这不仅结果可能不对(两个独立计数相乘 ≠ 同时满足的计数),而且比 COUNTIFS 慢。

数据透视表更适合大规模统计:如果你需要按多个维度交叉统计,与其写一堆 COUNTIF/COUNTIFS 公式,不如直接用数据透视表——拖拽字段出结果,Excel 内部优化过,速度快得多。详见 《数据透视表入门:3分钟把明细表变成汇总报表》

ESC