「把销售表中北京地区的订单金额加起来」「统计1月份所有A类产品的销量总和」——这类需求在Excel和WPS表格中几乎每天都会遇到。很多人面对成百上千行数据,第一反应是一行一行手动加,或者筛选后看底部的求和结果。
需要更多WPS表格的函数教程和技巧?先看看 WPS教程首页 的完整文章列表,从零基础到高级公式都有。
其实WPS表格提供了专门的条件求和函数——SUMIF和SUMIFS,一个公式半秒钟就能解决上面所有问题。但这两个函数看似简单,实际用起来有许多陷阱:条件带引号还是不带引号?多条件的时候条件区域和求和区域怎么对应?为什么明明有数据,公式结果却是0?
本文用8个真实案例,从零带你彻底搞懂SUMIF和SUMIFS的全部用法。
SUMIF和SUMIFS的基础语法
写公式之前,先搞清楚这两个函数的区别:
| 函数 | 用途 | 条件数量 | 求和区域位置 |
|---|---|---|---|
| SUMIF | 单条件求和 | 1个 | 最后一个参数 |
| SUMIFS | 多条件求和 | 1~127个 | 第一个参数 |
核心区别:SUMIF的求和区域在最后一个参数,SUMIFS的求和区域在第一个参数。这是最容易写错的地方。
SUMIF 语法
=SUMIF(条件区域, 条件, [求和区域])
- 条件区域:用于判断条件的单元格范围(必填)
- 条件:判断的标准,可以是数字、文本、表达式(必填)
- 求和区域:实际求和的单元格范围(选填,省略时对条件区域本身求和)
SUMIFS 语法
=SUMIFS(求和区域, 条件区域1, 条件1, [条件区域2, 条件2], ...)
- 求和区域:实际求和的单元格范围(必填,请注意它在第一个参数位置!)
- 条件区域1:第一个条件的判断范围(必填)
- 条件1:第一个条件的判断标准(必填)
- 条件区域2, 条件2:后续条件对,最多支持127对
案例一:按类别统计销售额(SUMIF基础用法)
先看一个最常用的场景。假设你有一张销售明细表:
| A列:产品类别 | B列:销售额 |
|---|---|
| 电子产品 | 5000 |
| 家居用品 | 3000 |
| 电子产品 | 4500 |
| 服装 | 2000 |
| 电子产品 | 6000 |
| 家居用品 | 3500 |
目标:计算「电子产品」的总销售额。
公式:
=SUMIF(A:A, "电子产品", B:B)
公式解读:
A:A:在A列中查找"电子产品":查找条件是「等于电子产品」B:B:找到后对B列对应行求和
结果:5000 + 4500 + 6000 = 15500
⚠️ 注意:条件是文本时必须用英文双引号包裹。写成
SUMIF(A:A, 电子产品, B:B)会报错。
案例二:统计大于某个值的所有金额
除了等于,SUMIF还支持比较运算符。
场景:统计所有销售额大于4000元的记录总和。
公式:
=SUMIF(B:B, ">4000")
这里省略了第三个参数(求和区域),WPS会默认对条件区域(B列)本身求和。
支持的比较运算符:
| 运算符 | 含义 | 写法示例 |
|---|---|---|
| = | 等于 | "=5000" 或直接 5000 |
| > | 大于 | ">4000" |
| < | 小于 | "<3000" |
| >= | 大于等于 | ">=4000" |
| <= | 小于等于 | "<=3000" |
| <> | 不等于 | "<>电子产品" |
⚠️ 比较运算符和数值要一起放在引号内,如
">4000",不能写成>4000。
案例三:按销量排名统计销售额(引用单元格中的条件)
条件不一定要硬编码在公式中,也可以引用某个单元格的值。
场景:A列是产品名,B列是销量,C列是销售额。你想统计「销量大于100」的所有产品销售额总和。
公式:
=SUMIF(B:B, ">100", C:C)
如果你把阈值放在D1单元格中(比如100),公式可以写成:
=SUMIF(B:B, ">" & D1, C:C)
">" & D1 的作用是将比较运算符「>」和D1单元格的值拼接起来,形成 ">100" 这样的条件字符串。这样你只需修改D1单元格的值,就能动态切换统计阈值,不需要每次改公式。
案例四:模糊条件匹配(通配符用法)
有时候条件不是精确匹配,而是「包含某个关键词」。
场景:A列是产品全称(如「苹果iPhone 15」「华为Mate 60 Pro」「小米14 Ultra」),你想统计所有包含「苹果」的产品销售额。
公式:
=SUMIF(A:A, "*苹果*", B:B)
WPS表格支持两种通配符:
| 通配符 | 含义 | 示例 |
|---|---|---|
| * | 代表任意多个字符 | "*苹果*" 匹配任何包含「苹果」的文本 |
| ? | 代表单个任意字符 | "A???" 匹配以A开头的4个字符的文本 |
常见模糊条件写法:
- 以「华为」开头:
"华为*" - 以「Pro」结尾:
"*Pro" - 包含「WPS」:
"*WPS*" - 第3个字符是「电」:
"??电*"
案例五:多条件求和(SUMIFS的经典使用场景)
现在来看SUMIFS——多条件求和的场景。
数据表结构:
| 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产品」的总金额。
公式:
=SUMIFS(D:D, B:B, "北京", C:C, "A产品")
公式解读:
D:D:求和区域(金额列)——注意在第一个参数B:B, "北京":条件1——地区列等于「北京」C:C, "A产品":条件2——产品列等于「A产品」
结果:5000 + 4500 = 9500
📌 这就是SUMIF和SUMIFS最核心的区别:SUMIF的求和区域在最后一个参数,SUMIFS的求和区域在第一个参数。混用的话公式会出错。
案例六:按日期范围统计(日期条件求和)
这是财务和销售统计中最常见的需求——按月份、季度或自定义日期范围统计。
场景:统计2026年1月1日到2026年1月31日期间的总金额。
公式:
=SUMIFS(D:D, A:A, ">=2026-01-01", A:A, "<=2026-01-31")
公式解读:
- 两个条件都作用于同一个列(A列,日期列)
- 条件1:日期 >= 2026-01-01
- 条件2:日期 <= 2026-01-31
如果你把开始日期和结束日期分别放在F1和G1单元格:
=SUMIFS(D:D, A:A, ">=" & F1, A:A, "<=" & G1)
这样只需要修改F1和G1的值,就能快速切换统计的时间范围,非常方便。
案例七:排除特定值的求和
有时候你需要统计「除了某个值以外的总和」。
场景:统计除了「广州」以外所有地区的总金额。
公式(用SUMIF):
=SUMIF(B:B, "<>广州", D:D)
公式(用SUMIFS,排除多个地区):
=SUMIFS(D:D, B:B, "<>北京", B:B, "<>广州")
案例八:空白和非空白单元格的条件求和
除了具体值,SUMIF/SUMIFS还可以基于单元格是否为空来判断。
统计所有已填地区的金额(地区不为空):
=SUMIF(B:B, "<>", D:D)
统计所有未填地区的金额(地区为空):
=SUMIF(B:B, "", D:D)
这两个用法在数据清洗和异常检测中非常有用——比如快速计算有多少条记录的必填字段没有填写。
SUMIF/SUMIFS函数常见错误排查
公式写了但结果不对?下面覆盖了5种最常见的错误情况。
错误一:#VALUE! 错误
现象:公式返回 #VALUE!。
原因:SUMIFS的条件区域和求和区域的行数不一致。
错误示例:
=SUMIFS(D2:D100, B2:B200, "北京", C2:C100, "A产品")
B列是200行,但D列和C列只选了100行。
正确写法:确保所有区域的行数一致。
=SUMIFS(D2:D100, B2:B100, "北京", C2:C100, "A产品")
错误二:结果为0(明明有符合条件的数据)
现象:肉眼看到表里有符合条件的数据,但SUMIF返回了0。
原因1:数字以文本格式存储。检查方法:选中数字列 → 看单元格左上角是否有绿色小三角 → 如果有,说明数字被存成了文本。
解决方案:选中文本数字区域 → 点击出现的感叹号图标 → 「转换为数字」。
原因2:条件文本有多余的空格。比如数据是 "北京",但条件写的是 "北京 "(末尾多一个空格)。这肉眼看不出来,但计算机认为是两个不同的值。
解决方案:使用TRIM函数清理数据,或检查条件中的空格。
错误三:通配符没有生效
现象:写了 "*苹果*" 作为条件,但返回结果是0。
原因:通配符 * 只对文本类型生效。如果条件区域中是数字或日期,通配符不会匹配。
解决方案:确保条件区域的数据格式是文本。如果要从数字中匹配,改用比较运算符(如 ">5000")。
错误四:SUMIF多重条件误区
现象:想同时满足多个条件,用了SUMIF却不对。
错误写法:
=SUMIF(A:A, "北京", B:B) + SUMIF(A:A, "上海", B:B)
这个公式求的是「北京 或 上海」的金额总和(并集),而不是「既在北京又在上海」(交集)。如果你想要「北京地区A产品」这种交集条件,应该用SUMIFS。
错误五:日期条件写了但不生效
现象:公式 =SUMIFS(D:D, A:A, ">2026-01-01") 返回错误或0。
原因:日期比较在WPS中需要用标准日期格式。直接用字符串比较可能不准确——这取决于A列中日期是文本格式还是真正的日期格式。
解决方案:如果日期存在单元格E1(格式为真正的日期),用:
=SUMIFS(D:D, A:A, ">" & E1)
这样WPS会自动处理日期比较,不会出错。
SUMIF vs SUMIFS vs SUMPRODUCT:什么时候用哪个?
| 函数 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| SUMIF | 单一条件求和 | 语法简单,计算快 | 只能一个条件 |
| SUMIFS | 多条件求和 | 支持最多127个条件 | 求和区域在第一个参数,容易写错 |
| SUMPRODUCT | 复杂多条件、需要运算的条件 | 功能最强大,条件可以是公式 | 语法复杂,大数据量时较慢 |
简单决策原则:
- 一个条件 → SUMIF
- 多个条件 → SUMIFS
- 条件需要计算(比如金额乘以折扣率后再求和)→ SUMPRODUCT
SUMIF/SUMIFS的最佳实践建议
1. 尽量使用整列引用而不是固定范围
- ✅ 推荐:
=SUMIF(A:A, "北京", D:D) - ❌ 不推荐:
=SUMIF(A2:A500, "北京", D2:D500)
整列引用(A:A)的好处是数据增加时不需要修改公式。WPS表格会自动忽略空白单元格,不会影响性能。
2. 条件值放在单元格中而不是硬编码
把「北京」「5000」这样的条件值写在单独的单元格(如F1)中,公式引用F1。这样条件变了只需修改单元格,不用翻找公式。
3. 用命名区域提高公式可读性
给A列(地区)命名为「地区」,D列(金额)命名为「金额」:
=SUMIFS(金额, 地区, "北京", 产品, "A产品")
比 =SUMIFS(D:D, A:A, "北京", C:C, "A产品") 好理解得多。
4. 验证结果
写完公式后,建议用筛选功能手动验证一下:筛选出符合条件的行 → 选中金额列 → 看底部状态栏的求和数值 → 比对公式结果。不一致就排查上面列出的常见错误。
这篇教程之后建议你看
掌握SUMIF和SUMIFS后,以下WPS表格教程可以帮你进一步成为表格高手:
- WPS表格VLOOKUP函数完整教程:条件求和统计的是总和,VLOOKUP做的是精确查找。两个函数配合使用,可以完成绝大多数表格数据处理任务
- WPS表格常用函数公式大全:超过30个常用函数的速查手册,从数学运算到文本处理一网打尽
- WPS表格公式不计算怎么办:公式写对了但不出结果?这篇文章覆盖了6种排查步骤
- WPS数据验证入门教程:防止输入错误数据的最好方式,和SUMIF配合使用效果更佳
数据分析可视化方面的教程:
- WPS表格数据可视化指南:把SUMIF的结果变成好看的图表
- WPS数据透视表完整教程:比SUMIF更强大的数据分析工具
常见问题
Q1: SUMIF和SUMIFS有什么区别?什么时候用哪个?
SUMIF用于单条件求和(1个条件),语法为 `=SUMIF(条件区域, 条件, [求和区域])`;SUMIFS用于多条件求和(1~127个条件),语法为 `=SUMIFS(求和区域, 条件区域1, 条件1, 条件区域2, 条件2, ...)`。关键区别是求和区域的位置不同——SUMIF在最后一个参数,SUMIFS在第一个参数,这是最常见的写错原因。简单原则:一个条件用SUMIF,多个条件用SUMIFS。
Q2: SUMIF结果为0怎么办?数据表里明明有符合条件的行。
90%的情况是因为①数字被存成了文本格式(检查单元格是否有绿色小三角);②条件文本有多余空格(如数据是"北京"但条件写了"北京 ");③条件区域的数据类型与条件不匹配(如条件写的是文本,实际是数字)。排查步骤:先用筛选功能确认确实存在符合条件的行→检查数据列的格式→用TRIM清理空格→尝试将条件放在单元格中引用而非硬编码。
Q3: SUMIF中的通配符*和?怎么用?
星号(*)代表任意多个字符,问号(?)代表单个字符。例如:`"*苹果*"`匹配任何包含"苹果"的文本;`"华为*"`匹配以"华为"开头的文本;`"??A*"`匹配第三个字符是A的文本。通配符只对文本类型生效,对数字和日期无效。如果通配符没生效,检查条件区域的数据格式是否为文本。
Q4: 多条件下SUMIFS条件区域大小不一致会怎样?
会返回 #VALUE! 错误。SUMIFS要求所有条件区域和求和区域的行数完全一致。例如 `=SUMIFS(D2:D100, B2:B200, "北京", C2:C100, "A产品")` 会报错,因为B列范围是200行而D和C列只有100行。修改为统一范围即可:`=SUMIFS(D2:D100, B2:B100, "北京", C2:C100, "A产品")`。
Q5: 如何用SUMIFS统计某个日期范围内的数据?
假设日期在A列,金额在D列,统计2026年1月的数据:=SUMIFS(D:D, A:A, ">=2026-01-01", A:A, "<=2026-01-31")。如果开始和结束日期放在F1和G1单元格,公式为:=SUMIFS(D:D, A:A, ">=" & F1, A:A, "<=" & G1)。使用单元格引用比硬编码日期更灵活,切换统计月份只需改F1和G1的值。
Q6: SUMIFS最多支持多少个条件?
在WPS Office 2023及之后版本中,SUMIFS最多支持**127对条件**(即127个条件范围和127个条件的组合)。对于99.9%的实际使用场景来说完全够用。如果确实需要超过127个条件,可以考虑使用SUMPRODUCT函数替代,或者将条件分到多个单元格中用SUMIFS分段求和后相加。
总结
SUMIF和SUMIFS是WPS表格中使用频率最高的统计函数之一。记住三个要点:单条件用SUMIF、多条件用SUMIFS、SUMIFS的求和区域在第一个参数。掌握了这三个点,加上本文中的8个实际案例,应付日常工作中的条件求和需求绰绰有余。
下次老板让你「把这个月各区域的销售额汇总一下」,别再用筛选+手动加总了——一个SUMIFS公式,两秒钟搞定。