「这个月有多少笔订单超过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不仅能做统计,还能用来防止错误——这是很多用户不知道的技巧。

场景:员工编号必须唯一,输入重复编号时给出警告。

操作步骤:

  1. 选中员工编号列(如A2:A100)
  2. 点击「数据」→「有效性」→「设置」
  3. 「允许」选择「自定义」
  4. 公式填入:=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内部存储方式不同,比较会失效。

解决两个方法:

  1. 确保日期列是真正的日期格式(选中→右键→设置单元格格式→日期)
  2. 把日期条件放在单元格中,用引用方式:=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年最新版本编写,所有示例均经过实际操作验证。