SUMIFS / SUMIF 多条件求和:语法、通配符、日期条件与常见错误

适用场景

按地区、产品、时间段汇总销售额,或者只统计某个状态、某个负责人、某个金额区间的合计。SUMIFS 是 Excel 里最常用的条件求和函数,掌握参数顺序和条件写法,比反复筛选再求和可靠得多。

语法

SUMIFS

=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

注意:SUMIFS 的求和列在第一个参数,条件列在后面。范围大小必须一致,否则返回 #VALUE!。

SUMIF

=SUMIF(range, criteria, [sum_range])

SUMIF 只有一个条件,求和列是第三个参数;如果省略 sum_range,就对 range 本身求和。

条件怎么写

条件 写法 说明
等于文本 "华东" 文本要加双引号
等于单元格 E2 引用单元格时不要加引号
大于 ">10000" 比较符和数值一起放在引号里
大于某单元格 ">"&E2 比较符在引号里,用 & 连接
介于 两个条件:">=1000"、"<=5000" SUMIFS 天然是“且”
不等于 "<>华东" 排除华东
非空 "<>" 统计有值的行
空 "" 统计空白行
包含 "*A*" * 代表任意字符
以 A 开头 "A*" ? 代表单个字符
包含星号本身 "~*" ~ 转义通配符

日期条件

日期在 Excel 里是数字,条件要拼成可比较的值:

=SUMIFS(C:C, A:A, ">="&DATE(2026,1,1), A:A, "<="&DATE(2026,1,31))
=SUMIFS(C:C, A:A, ">="&EOMONTH(TODAY(),-1)+1, A:A, "<="&EOMONTH(TODAY(),0))

不要写 ">=2026-01-01",这种写法在不同区域设置下可能被当成文本;用 DATE() 或 EOMONTH() 构造日期最稳。

多条件“或”

SUMIFS 的条件之间是“且”。需要“华东或华南”时,可以用数组常量:

=SUM(SUMIFS(C:C, A:A, {"华东","华南"}))

SUMIFS 会分别算出两个地区的和,外面的 SUM 再把结果相加。也可以拆成两个 SUMIFS 相加,公式更长但更容易检查。

示例

假设 A 列地区、B 列产品、C 列金额、D 列日期:

华东地区 A 产品总销售额
=SUMIFS(C:C, A:A, "华东", B:B, "A")

华东地区 2026 年 1 月销售额
=SUMIFS(C:C, A:A, "华东", D:D, ">="&DATE(2026,1,1), D:D, "<="&DATE(2026,1,31))

金额大于 10000 的订单数对应的销售额
=SUMIFS(C:C, C:C, ">10000")

名称包含“旗舰”的产品销售额
=SUMIFS(C:C, B:B, "*旗舰*")

只对可见行求和

筛选后直接用 SUMIFS 仍会把隐藏行算进去。只统计可见行用 SUBTOTAL:

=SUBTOTAL(109, C2:C100)

109 表示忽略手动隐藏行的求和;9 会包含隐藏行。SUBTOTAL 不能直接叠加 SUMIFS 条件,需要按条件筛选后再看状态栏,或用辅助列。

易错点

相关条目

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. SUMIFS 和 SUMIF 的参数顺序有什么不同?
  2. 日期条件为什么推荐用 DATE() 而不是直接写 2026-01-01?
  3. 筛选后直接用 SUMIFS,隐藏行会被排除吗?
答案
  1. SUMIFS 是求和区域在前,后面成对写条件区域和条件;SUMIF 是条件区域、条件、求和区域。
  2. 直接写日期字符串可能被当成文本,受区域设置影响;DATE() 构造的是真正的日期序列值。
  3. 不会,SUMIFS 仍会计算隐藏行;只统计可见行要用 SUBTOTAL(109, ...)。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令