「这个月有多少笔订单超过5000元?」「销售表中北京地区的客户有多少个?」「排班表里上夜班的员工有几人?」——工作中这类统计需求几乎每天都会遇到。
很多人的做法是筛选→选中→看底部状态栏的计数。但如果数据有几百行、几十个类别,筛选到手软也统计不完。其实WPS表格提供了专门的条件计数函数——COUNTIF和COUNTIFS,一个公式就能解决上述所有需求。
需要更系统的WPS表格函数学习路径?可以先看看 WPS教程首页 的完整文章列表,从零基础到高级公式都有覆盖。
COUNTIF和COUNTIFS看似简单,实际使用中陷阱不少:什么时候用通配符?多条件时条件区域怎么对应?日期条件为什么不生效?本文用10个真实办公案例,从零带你彻底掌握这两个函数。
COUNTIF和COUNTIFS的区别与基础语法
先搞清楚两个函数的核心区别:
| 函数 | 用途 | 条件数量 | 语法要点 |
|---|---|---|---|
| COUNTIF | 单条件计数 | 1个 | 先写范围,再写条件 |
| COUNTIFS | 多条件计数 | 1~127个 | 条件范围和条件成对出现 |
简单说:COUNTIF解决「有多少个XX」,COUNTIFS解决「同时满足A和B的有多少个」。
COUNTIF 语法
=COUNTIF(条件区域, 条件)
- 条件区域:要在其中判断条件的单元格范围(必填),比如 A2:A100
- 条件:判断标准,可以是数字、文本、表达式或单元格引用(必填)
最简示例——统计A列中等于「已完成」的单元格数量:
=COUNTIF(A:A, "已完成")
COUNTIFS 语法
=COUNTIFS(条件区域1, 条件1, [条件区域2, 条件2], ...)
- 条件区域1:第一个条件的判断范围(必填)
- 条件1:第一个条件的判断标准(必填)
- 条件区域2, 条件2:后续条件对,最多支持127对
COUNTIFS要求所有条件同时满足才会被计入——这是一个「与」的关系,不是「或」。
案例一:统计等于某个值的数量(基础用法)
最常用的场景——统计某个值出现了多少次。
数据场景:A列是订单状态(已发货/待付款/已完成/已取消),共200行数据。
目标:统计「已完成」的订单数量。
公式:
=COUNTIF(A:A, "已完成")
公式解读:
A:A:在A列(整列)中查找"已完成":统计等于「已完成」的单元格个数
⚠️ 条件是文本时必须用英文双引号包裹。写成
COUNTIF(A:A, 已完成)会报错。
如果你已经掌握了COUNTIF的基础用法,搭配 WPS表格VLOOKUP完整教程 可以实现「先计数、再查找明细」的组合操作,大幅提升数据处理效率。
案例二:统计大于/小于某个值的数量
除了等于,COUNTIF还支持比较运算符——这是很多用户不知道的用法。
场景:B列是订单金额,统计金额大于5000元的订单数量。
公式:
=COUNTIF(B:B, ">5000")
支持的比较运算符一览:
| 运算符 | 含义 | 写法示例 |
|---|---|---|
| = | 等于 | "=已完成" 或直接 "已完成" |
| > | 大于 | ">5000" |
| < | 小于 | "<100" |
| >= | 大于等于 | ">=60" |
| <= | 小于等于 | "<=90" |
| <> | 不等于 | "<>已取消" |
⚠️ 运算符和值要一起放进英文双引号里,写成
">5000",不能写成>5000或">" & 5000。
实战场景:学生成绩表,统计及格(>=60分)的人数:
=COUNTIF(C2:C50, ">=60")
统计不及格(<60分)的人数:
=COUNTIF(C2:C50, "<60")
案例三:引用单元格中的条件(动态计数)
把条件值写在单元格中,公式引用这个单元格——这样修改条件时不需要动公式。
场景:D1单元格里写了目标金额5000,你想统计超过这个金额的订单数。修改D1的值就能直接切换阈值。
公式:
=COUNTIF(B:B, ">" & D1)
公式解读:
">"是比较运算符&是文本连接符D1是存放阈值的单元格- 结果拼接成
">5000"这样的条件字符串
这和硬编码 ">5000" 完全等价,但灵活性高了不止一个档次。做日报月报时尤其方便——只需改一个单元格,所有关联统计自动更新。
案例四:模糊条件计数(通配符*和?用法)
有时候你不确定精确的文本是什么,只知道「大概包含某个关键词」。这时通配符就派上用场了。
场景:A列是产品全称(如「苹果iPhone 16 Pro Max」「华为Mate 70 Pro」「小米15 Ultra」),你想统计所有包含「苹果」的产品有多少个。
公式:
=COUNTIF(A:A, "*苹果*")
WPS表格支持两种通配符:
| 通配符 | 含义 | 示例 | 匹配结果 |
|---|---|---|---|
* | 任意多个字符 | "*苹果*" | 包含「苹果」的所有文本 |
? | 单个任意字符 | "A???" | A开头共4个字符的文本 |
常见模糊条件写法汇总:
- 以「华为」开头:
"华为*" - 以「Pro」结尾:
"*Pro" - 包含「WPS」:
"*WPS*" - 第3个字符是「电」:
"??电*" - 姓「张」且名字是2个字(共3字):
"张??"
关于通配符的更多高阶用法,可以参考 WPS查找替换通配符指南 中关于批量文本处理的内容。
案例五:多条件计数(COUNTIFS的经典场景)
COUNTIFS是COUNTIF的升级版——同时满足多个条件才计数。
数据表结构:
| A列:日期 | B列:地区 | C列:产品 | D列:金额 |
|---|---|---|---|
| 2026-01-05 | 北京 | A产品 | 5000 |
| 2026-01-08 | 上海 | B产品 | 3000 |
| 2026-01-15 | 北京 | A产品 | 4500 |
| 2026-01-20 | 广州 | C产品 | 2000 |
| 2026-01-25 | 北京 | B产品 | 6000 |
目标:统计「北京地区且A产品」的订单数量。
公式:
=COUNTIFS(B:B, "北京", C:C, "A产品")
公式解读:
B:B, "北京":条件1——地区等于「北京」C:C, "A产品":条件2——产品等于「A产品」- 两条件同时满足才计数
结果:2笔(1月5日和1月15日的订单)。
📌 COUNTIFS中多个条件是「与」的关系(同时满足),不是「或」的关系。如果想统计「北京或上海」的订单,应该用两个COUNTIF相加:
=COUNTIF(B:B, "北京") + COUNTIF(B:B, "上海")。
案例六:按日期范围计数
这是报表中最常见的需求——统计某个月、某个季度或某个时间段内的记录数。
场景:A列是订单日期,统计2026年1月份的订单数量。
公式:
=COUNTIFS(A:A, ">=2026-01-01", A:A, "<=2026-01-31")
公式解读:
- 两个条件都作用于A列(日期列)
- 条件1:日期 >= 2026-01-01
- 条件2:日期 <= 2026-01-31
- 两个边界条件同时满足 = 1月份内的所有日期
动态日期范围——把开始和结束日期放在单元格中:
假设F1 = 2026-01-01,G1 = 2026-01-31:
=COUNTIFS(A:A, ">=" & F1, A:A, "<=" & G1)
只需修改F1和G1就能切换统计周期,生成月度报表时效率极高。
案例七:统计非空和空单元格数量
COUNTIF还能用于数据完整性检查——快速发现漏填项。
统计已填写的单元格(不为空):
=COUNTIF(A:A, "<>")
统计空白单元格(为空):
=COUNTIF(A:A, "")
实战场景:员工信息表B列是手机号,快速统计还有多少人没填手机号:
=COUNTIF(B:B, "")
💡 这个技巧在数据清洗和表单审核中非常实用——一眼就能看出哪些必填字段存在遗漏。
案例八:排除特定值的计数
有时候你需要的不是「包含什么」,而是「不包含什么」。
场景:统计除了「已取消」之外的所有订单数量。
公式:
=COUNTIF(A:A, "<>已取消")
排除多个值——统计既不是「已取消」也不是「已退款」的订单:
=COUNTIFS(A:A, "<>已取消", A:A, "<>已退款")
案例九:统计满足多个条件中任意一个的数量(或逻辑)
COUNTIFS是「与」逻辑(同时满足),那「或」逻辑(满足任意一个)呢?
场景:统计订单状态为「已完成」或「已发货」的数量。
方法:用两个COUNTIF相加。
=COUNTIF(A:A, "已完成") + COUNTIF(A:A, "已发货")
如果条件较多(比如5个),可以用SUMPRODUCT配合数组来简化。不过对于大多数办公场景,两个COUNTIF相加已经够用了。
关于SUMPRODUCT函数的高级用法,可以参考 WPS SUMIF和SUMIFS条件求和教程,其中有一个章节专门对比了SUMIFS和SUMPRODUCT的适用场景。
案例十:COUNTIF配合数据验证防止重复录入
COUNTIF不仅能做统计,还能用来防止错误——这是很多用户不知道的技巧。
场景:员工编号必须唯一,输入重复编号时给出警告。
操作步骤:
- 选中员工编号列(如A2:A100)
- 点击「数据」→「有效性」→「设置」
- 「允许」选择「自定义」
- 公式填入:
=COUNTIF($A$2:$A$100, A2)=1
设置后,如果有人在A列输入了已经存在的编号,WPS会弹出警告阻止输入。
💡 这个功能配合 WPS数据验证入门教程 中的下拉菜单和输入限制功能,可以构建一套完整的数据录入防护体系。
COUNTIF/COUNTIFS常见错误排查
公式写好了但结果不对?以下6种错误覆盖了90%的实际情况。
错误一:结果为0(但数据表里明明有符合条件的行)
原因1——数字以文本格式存储:检查单元格左上角是否有绿色小三角。如果有,说明数字被存成了文本,COUNTIF无法识别。
解决:选中数据区域 → 点击绿色三角感叹号 →「转换为数字」。
原因2——条件文本有多余空格:数据是「北京」,条件写的是「北京 」(末尾多空格),肉眼看不出来但计算机认为不同。
解决:用 =TRIM() 函数清理数据源,或在条件中加通配符 "*北京*"。
原因3——大小写或全半角问题:英文条件注意大小写,中文条件注意全半角标点。
错误二:通配符没有生效
现象:=COUNTIF(A:A, "*苹果*") 返回0,但A列明明有包含「苹果」的文本。
原因:通配符 * 和 ? 只对文本类型生效。如果A列的值本质是数字或日期(即使显示为文本),通配符不会匹配。
解决:确认数据列的单元格格式是「文本」,而不是「常规」或「数字」。可以选中列→右键→「设置单元格格式」→「文本」。
错误三:COUNTIFS条件区域大小不一致
现象:公式返回 #VALUE! 错误。
原因:COUNTIFS中所有条件区域的范围大小不一致。
错误示例:
=COUNTIFS(B2:B100, "北京", C2:C200, "A产品")
B列只选了99行,C列选了199行——范围对不齐。
正确写法:
=COUNTIFS(B2:B100, "北京", C2:C100, "A产品")
错误四:日期条件不生效
现象:=COUNTIF(A:A, ">2026-01-01") 统计结果不对。
原因:A列中的日期可能是文本格式而非真正的日期格式。文本和日期在WPS内部存储方式不同,比较会失效。
解决两个方法:
- 确保日期列是真正的日期格式(选中→右键→设置单元格格式→日期)
- 把日期条件放在单元格中,用引用方式:
=COUNTIF(A:A, ">" & F1),其中F1是真正的日期格式
错误五:COUNTIF对大于15位的数字统计不准
现象:用COUNTIF统计身份证号、银行卡号等长数字,明明不同却计为相同。
原因:WPS/Excel中数字精度为15位。超过15位的数字会被截断比较——前15位相同的两个身份证号会被当成同一个。
解决:在长数字列的值前面加一个单引号(’),将其强制存为文本格式。或在COUNTIF条件中用通配符:=COUNTIF(A:A, F1 & "*")。
错误六:COUNTIF与筛选后的可见行
现象:对筛选后的数据使用COUNTIF,想统计可见行的数量,结果却统计了所有行(包括被隐藏的)。
原因:COUNTIF/COUNTIFS会统计所有行,不管行是否被筛选隐藏。这是函数的内置行为,没有开关可以修改。
解决:如果需要只统计可见行,使用SUBTOTAL函数配合筛选:
=SUBTOTAL(2, A:A)
其中参数2表示COUNTA(计数非空单元格),它会自动忽略被筛选隐藏的行。如果需要带条件统计可见行,则需要使用SUMPRODUCT配合SUBTOTAL的复杂组合公式。
关于公式不计算的更多排查方法,可以参考 WPS表格公式不计算怎么办 中的6步排查流程。
COUNTIF/COUNTIFS vs 数据透视表:什么时候用哪个?
| 对比维度 | COUNTIF/COUNTIFS | 数据透视表 |
|---|---|---|
| 上手难度 | 简单,写公式即可 | 需要学习操作 |
| 灵活性 | 极高,条件任意组合 | 受限于拖拽字段 |
| 结果形式 | 单个数值 | 完整汇总表 |
| 动态更新 | 数据变结果自动变 | 需手动刷新 |
| 适合场景 | 单一统计指标 | 多维度交叉分析 |
决策建议:如果你只需要一个数字(如「本月成交了多少笔」),COUNTIF就够了。如果你需要看到按地区、按月份的交叉汇总表,上数据透视表。两者不冲突——你可以先用COUNTIF做关键指标监控,再用 WPS数据透视表教程 做深度分析。
常见问题
Q1: COUNTIF和COUNTIFS有什么区别?什么场景用哪个?
COUNTIF是单条件计数,语法为=COUNTIF(区域, 条件);COUNTIFS是多条件计数(最多127个条件),语法为=COUNTIFS(区域1, 条件1, 区域2, 条件2, ...)。关键区别是COUNTIFS可以同时应用多个条件(且关系),所有条件必须同时满足才计数。简单原则:一个条件用COUNTIF,多个条件用COUNTIFS。如果条件是「或」的关系(满足A或B),则用两个COUNTIF相加:=COUNTIF(A:A, "A") + COUNTIF(A:A, "B")。
Q2: COUNTIF结果为0,但数据明明有符合条件的,怎么排查?
按以下三步排查:① 数字被存成了文本——检查单元格左上角是否有绿色小三角,如有则「转换为数字」;② 条件文本有多余空格——数据中"北京"与条件中"北京 "看似一样实际不同,对所有数据跑一次TRIM函数清理空格;③ 引号半角问题——条件必须用英文双引号("),不能用中文引号(「」或"")。90%的情况是原因①。
Q3: COUNTIF的通配符*和?怎么用?有哪些限制?
星号(*)代表任意多个字符,问号(?)代表单个字符。例如"*WPS*"匹配任何包含"WPS"的文本,"张??"匹配"张"开头后面跟任意两个字符的文本。但有三个限制:① 通配符只对文本类型生效,对数字和日期无效;② 如果文本本身包含*或?(如"3*5"这种产品编号),需要在前面加波浪号转义:"3~*5";③ 通配符不能匹配空单元格。
Q4: COUNTIFS中多个条件是「与」还是「或」的关系?
COUNTIFS中多个条件是「与」的关系——所有条件必须同时满足才被计数。例如=COUNTIFS(B:B, "北京", C:C, "A产品")统计的是「既是北京又是A产品」的记录。如果你想要「或」逻辑(北京或上海),应该用=COUNTIF(B:B, "北京") + COUNTIF(B:B, "上海")。另外注意两个COUNTIF相加可能重复计数(如果一条记录同时匹配两个条件),需要根据数据情况判断是否要去重。
Q5: 如何用COUNTIF统计某个日期范围内的数据?
假设日期在A列,统计2026年1月份的记录:=COUNTIFS(A:A, ">=2026-01-01", A:A, "<=2026-01-31")。这里用COUNTIFS设置双重条件(>=开始日期且<=结束日期),两个条件都作用在A列上。如果开始日期和结束日期放在F1和G1单元格中,公式为=COUNTIFS(A:A, ">=" & F1, A:A, "<=" & G1)。这样做的好处是切换统计月份时只需改两个单元格的值,不用修改公式。
Q6: COUNTIF为什么对身份证号/银行卡号统计不准?
因为WPS和Excel中数字精度为15位,身份证号是18位,第16~18位会被忽略。两个身份证号如果前15位相同,COUNTIF会当成同一个。解决方法:① 在输入身份证号时前面加单引号('),强制存为文本;② 或者在COUNTIF条件中加通配符:=COUNTIF(A:A, F1 & "*")。如果你用COUNTIF做身份证号查重,建议改用COUNTIF配合通配符或直接用条件格式中的「重复值」功能。长文本比较时通配符技巧尤其重要。
总结
COUNTIF和COUNTIFS是WPS表格中「数数」的二合一神器——COUNTIF解决单条件计数,COUNTIFS解决多条件计数。
核心要点记住三句话:条件文本加双引号、通配符星号问号、COUNTIFS多条件是「且」不是「或」。掌握了这三点,再加上本文中的10个实战案例和6个错误排查方法,日常工作中的数据统计需求基本都能用COUNTIF搞定。
如果你刚开始学习WPS表格函数,建议先看 WPS表格常用函数公式大全,快速建立函数知识框架,再回头深入COUNTIF这类专项函数。
本文基于WPS Office 2026年最新版本编写,所有示例均经过实际操作验证。