全文约 3000 字,阅读时间约 8 分钟。内容覆盖 COUNTIF 基础语法、入门案例、精准与模糊匹配区别、日常高频"坑"及解决方案、进阶实用技巧。适合零基础办公新手,也可作为日常查阅手册。
一、COUNTIF 到底是什么?一句话说清楚
COUNTIF = Count(数个数)+ If(如果满足条件)
它干的事就一件:数一数指定范围内,有多少个单元格满足你设定的条件。
举几个生活中的例子你就明白了:
• 数一数这份名单里有多少人叫"张三" → =COUNTIF(A:A,"张三")• 数一数这次考试有多少人及格(≥60分) → =COUNTIF(B:B,">=60")• 数一数有多少订单是"已发货"状态 → =COUNTIF(C:C,"已发货")
看到没?所有场景都在回答同一个问题:满足条件的单元格,一共有多少个? 这就是 COUNTIF。
二、基础语法:三个部分,就记住了
COUNTIF 只有两个参数,特别简单:
=COUNTIF(要查找的范围, 查找的条件)| 范围 | ||
| 条件 |
就这么简单,两个参数,不用记第三个。
⚠️ 特别注意:条件参数必须加引号(文本和比较运算符都要),直接引用单元格时不用加引号。
✅ 正确:
=COUNTIF(A:A,">=60")✅ 正确:=COUNTIF(A:A,A2)(引用单元格,条件来自A2)❌ 错误:=COUNTIF(A:A,>=60)(少了引号)
三、从零开始:3 个入门案例
案例 1:统计"张三"出现了几次
想象你手里有一份员工名单在 A 列,现在想数一下"张三"出现了几次。
=COUNTIF(A:A,"张三")结果:名单里有几个"张三",就返回几。
案例 2:统计不及格人数(分数在 B 列)
考试分数在 B 列,不及格线是 60 分。
=COUNTIF(B:B,"<60")大于等于 用 ">=",小于等于 用 "<=",不等于 用 "<>"。
小技巧:条件里的比较运算符(>、<、>=、<=、<>)都是英文符号,不是中文!
案例 3:统计订单金额超过 1000 元的单数
金额在 C 列:
=COUNTIF(C:C,">1000")注意:数值条件直接写,不要加元、人民币等文字符号。条件 ">1000" 只认数字 1000,不认"1000元"。
四、精准匹配 vs 模糊匹配:搞清楚这个,用起来就通了
这是 COUNTIF 最重要的概念,很多人用错就是因为没分清这两种匹配方式。
精准匹配(默认)
条件是什么,就只数什么,一字不差。
=COUNTIF(A:A,"张三") → 只数"张三",不数"张三丰"、"李张三"=COUNTIF(A:A,"已发货") → 只数"已发货",不数"已发货(部分)"模糊匹配(通配符)
用特殊符号替代任意字符,最常用的两个:
* | "张*" | |
? | "张?" |
模糊匹配实例
① 统计所有姓"张"的人数
=COUNTIF(A:A,"张*")包含"张龙"、"张无忌"、"张力"……所有以"张"开头的人都算进去。
② 统计产品名以"手机"开头的产品数量
=COUNTIF(B:B,"手机*")"手机"、"手机壳"、"手机配件"都能匹配到。
③ 统计产品名是"X商品"(两字商品)的数量
=COUNTIF(B:B,"?商品")"X商品"中 X 只能是任意一个字符,所以能匹配"手机"、"电脑"、"家具"等任意一个字符+商品两个字。注意:这里的"商品"是固定文字,所以直接写。
⚠️ 模糊匹配注意区分:
如果产品列表里既有"手机"又有"手机壳",想只统计"手机"(不包含"手机壳")应该用精准匹配:
=COUNTIF(B:B,"手机")如果写成 "手机*","手机壳"也会被匹配进来,数字就会偏大。
五、日常高频"坑":遇到问题别慌,看这里
坑 1:明明有这个值,COUNTIF 却返回 0
最常见原因:空格!
单元格里的值可能看起来是"张三",实际上后面多了一个空格,变成"张三 "。肉眼完全看不出来,但 COUNTIF 严格区分,会认为不一样。
解决方法:
• 用 TRIM()函数先把空格去掉:=COUNTIF(A:A,TRIM("张三 "))• 或者在条件里手动加空格: "张三 "• 最根本:检查原始数据,手动删除多余空格
另一个原因:全角半角不一致
中文逗号","和英文逗号","完全不同。如果条件里有标点符号,确保全角/半角一致。
坑 2:条件用了相对引用,公式下拉后范围跑偏了
假设你在 C1 输入了公式:
=COUNTIF(A:A,">=60")下拉一格变成:
=COUNTIF(B:B,">=60") ← A列变成B列了!原因:A:A 是相对引用,会随公式位置变化而变化。
解决方法:
• 如果要锁定 A 列,在列标前加 $:$A:$A• 完整写法: =COUNTIF($A:$A,">=60")• 这样下拉时,A 列永远不变
💡 技巧:如果只查固定范围(如 A1:A100),也要记得加
$:$A$1:$A$100
坑 3:列被删除或插入后,COUNTIF 出错
如果你的公式引用的是范围 A1:A100,某天在第 5 行前插入了一行新数据,原来的"第6行"会变成"第7行",公式可能随之错位。
解决方法:使用整列引用(如 A:A),或者使用结构化引用(Excel 表格),避免行列变化的影响。
坑 4:数字和文本混在一起,查找不到
在 Excel 里,数字 100 和文本 "100" 是两个完全不同的值。
如果 A 列里有些数字是数值格式、有些是文本格式(前面有绿色三角),直接用 =COUNTIF(A:A,"100") 可能只能匹配到一种格式的数据。
解决方法:
• 先统一格式:用 VALUE()把文本转数值,或用TEXT()把数值转文本• 检查格式:选中单元格 → 右键 → 设置单元格格式 • 如果有混合格式,可以两个条件相加: =COUNTIF(A:A,"100")+COUNTIF(A:A,100)
六、进阶实用技巧:让你的 COUNTIF 更强大
技巧 1:COUNTIF + 其他函数,威力翻倍
① 不区分大小写统计
COUNTIF 本身不区分大小写,"ABC" 和 "abc" 视为相同。如果需要区分,可用 SUMPRODUCT 配合 EXACT 函数,这里不展开,新手记住这一点就够了。
② 统计非空单元格数量
=COUNTIF(A:A,"<>")<> 表示"不等于空",也就是所有有内容的单元格都算。
③ 统计空白单元格数量
=COUNTIF(A:A,"")一个空字符串,引号里什么都没有。
技巧 2:COUNTIFS——多条件统计(COUNTIF 升级版)
当需要一个条件不够用时,用 COUNTIFS:
=COUNTIFS(条件范围1, 条件1, 条件范围2, 条件2)例子:统计"北京"地区"销售额"超过 10000 的订单数量
=COUNTIFS(A:A,"北京", B:B,">10000")注意:COUNTIFS 的条件范围和条件是成对出现的,范围1配条件1,范围2配条件2,不能错位。
技巧 3:统计唯一值数量(去重计数)
想知道某列里有多少个不重复的值(去重后有几个),可以用数组公式:
=SUMPRODUCT(1/COUNTIF(A:A, A:A))原理:COUNTIF(A:A,A:A) 先统计每个值出现的次数,然后 1/次数,最后求和。出现 N 次的值贡献 1/N,N 次相加等于 1,完美实现去重计数。
⚠️ 这个公式处理大量数据时运行较慢,数据量大(>10000行)慎用。
技巧 4:结合 COUNTIF 做数据验证(防重复输入)
在 Excel 的"数据验证"里,可以用 COUNTIF 设置规则,防止用户重复录入身份证号、手机号等唯一标识:
1. 选中要验证的列(如 A 列) 2. 点击"数据" → "数据验证" 3. 允许条件选"自定义" 4. 公式输入: =COUNTIF($A:$A,A1)=15. 出错警告里写"该数据已存在,请勿重复录入"
这样用户输入重复数据时,Excel 会自动弹出提示,防止录入错误。
技巧 5:用 COUNTIF 配合条件格式,高亮重点数据
当你想一眼看到哪些数据"有问题"或"需要关注"时:
1. 选中数据区域(如 B 列) 2. 点击"开始" → "条件格式" → "新建规则" 3. 选"使用公式确定要设置格式的单元格" 4. 公式输入: =COUNTIF($D:$D,B1)=0(含义:B列中的值,如果D列里一个都没有,就高亮显示——常用于标记"缺失匹配"的数据)5. 设置填充颜色(如红色背景)
七、一图总结:COUNTIF 速查表
=COUNTIF(A:A,"苹果") | ||
=COUNTIF(A:A,"苹果*") | ||
=COUNTIF(B:B,">=60") | ||
=COUNTIF(B:B,"<60") | ||
=COUNTIF(A:A,"<>") | ||
=COUNTIF(A:A,"") | ||
=COUNTIFS(A:A,"北京",B:B,">10000") | ||
=SUMPRODUCT(1/COUNTIF(A:A,A:A)) |
写在最后
COUNTIF 是 Excel 中最基础也最实用的函数之一。学会用它,你就迈出了数据处理的第一步。
记住核心三点:
1. 它数个数,不做加法 2. 条件要加引号,比较运算符要用英文符号 3. 模糊匹配靠通配符 *和?,精准匹配靠字面量
遇到问题先查空格和格式,这两个是最常见的"坑"。多练几次,你也能成为办公室里的 Excel 高手。
如果觉得有用,欢迎转发给需要的同事朋友。也欢迎留言告诉我还想学哪个 Excel 函数,我们下期见!
夜雨聆风