Menu

Excel SUMIFS 函数:多条件求和

=SUMIFS(C2:C7,A2:A7,"North",B2:B7,"Apple") 把地区为 North 且产品为 Apple 的 C2:C7 销售额加起来。日期范围、“或”逻辑和可选筛选条件,都配有可编辑的表格。

本页的每张表格都是实时的:修改数字或公式,就会重新计算。

=SUMIFS(C2:C7,A2:A7,"North",B2:B7,"Apple") 把 A 列为 North 且 B 列为 Apple 的各行在 C2:C7 中的销售额加起来。要相加的区域写在最前面,然后每个条件对应一组区域和条件。

North 的苹果
F2
ABCDEF
1RegionProductSalesConditionTotal
2NorthApple120North, Apple150
3SouthPear45North, over 50200
4NorthPear80North230
5EastApple55
6SouthApple200
7NorthApple30
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

有两行是 North 且 Apple,分别是 120 和 30,所以 F2 显示 150。F3 把销售额列既用作求和区域,又用作条件区域:North 中大于 50 的行。F4 只有一个条件,作用和 SUMIF 一样。把 B4 改成 Apple,F2 就会增加 80。

SUMIFS 的语法

=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
  • sum_range 是要相加的单元格,它写在 最前面。在 SUMIF 中它写在最后:=SUMIF(A2:A7,"North",C2:C7)。把两种顺序弄混是 SUMIFS 的常见错误。如果你复制了一个 SUMIF 再添加条件,记得把求和区域移到最前面。
  • 每个条件是一对:一个区域和一个条件,最多 127 对。条件的写法和 SUMIF 相同:"North"、">50"、"*apple*"、"<>",或者和运算符连接的单元格 ">="&G2。
  • 只有所有条件都成立时,这一行才会被加进来。
  • 每个区域的大小都必须相同,否则 SUMIFS 返回 #VALUE!。

SUMIFS 只有一个条件时也能用,这样写的好处是以后添加第二个条件时不用调整参数顺序。

SUMIFS 按日期范围求和

要对一个月或任意时间段求和,就把日期列用两次:一次配开始日期,一次配结束日期。把日期放在单元格中。

两个日期之间的销售额
G4
ABCDEFG
1RegionProductSalesDateSettingValue
2NorthApple1202026-01-05Start2026-02-01
3SouthPear452026-01-12End2026-02-28
4NorthPear802026-02-03Total135
5EastApple552026-02-18North only80
6SouthApple2002026-03-02
7NorthApple302026-03-20
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

2 月有两笔订单,80 和 55,所以 G4 显示 135,G5 只保留 North 的那一笔。把 G3 改成 2026-03-31,就会把 3 月也包括进来。如果日期带有时间,"<="&G3 会停在最后一天的 0:00:用 "<"&G3+1 作为结束条件,那天晚些时候的订单才会被计入。

要根据单元格中的一个日期对整个月求和,可以让 EOMONTH 找到这个月的最后一天:=SUMIFS(C2:C7,D2:D7,">="&G2,D2:D7,"<="&EOMONTH(G2,0))。

SUMIFS 的“或”条件

SUMIFS 中的条件之间始终是“且”的关系。要计算 North 或 South,就给地区条件一个用大括号括起来的列表:SUMIFS 为每一项返回一个合计,再由 SUM 把它们加起来。

North 或 South
F2
ABCDEF
1RegionProductSalesConditionTotal
2NorthApple120North or South475
3SouthPear45North or South, Apple350
4NorthPear80Two SUMIFS475
5EastApple55
6SouthApple200
7NorthApple30
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

F2 和 F4 都得到 475,即除 East 那一行以外的全部。F3 把地区上的“或”和产品上的“且”结合在一起。列表只放在一个条件上:一个 SUMIFS 中如果有两个列表,它们会按位置一一配对,而不是尝试所有组合。

条件为空的 SUMIFS:可选的筛选条件

报表中常有一些筛选单元格,读者可以留空表示“全部”。用作条件的空单元格并不表示“任意值”:Excel 会把它当作 0,在文本列中什么都匹配不上。把它换成匹配任意文本的通配符 "*"。从列表中选择一个地区和一个产品,或者把它们清空试试。

可选的筛选条件
G4
ABCDEFG
1RegionProductSalesFilterValue
2NorthApple120RegionNorth
3SouthPear45Product
4NorthPear80Total230
5EastApple55
6SouthApple200
7NorthApple30
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

选择了 North 而没有选择产品时,G4 把 North 的每一行都加起来:230。在 G3 中选择 Apple,结果降到 150;清空 G2,它就把所有地区的 Apple 加起来。"*" 只匹配文本,所以这种方法适用于文本列;数字列则要用一个范围,即 ">="&min 和 "<="&max。

要把某列为空或非空的行加起来,就用 "" 和 "<>" 作为条件。D 列是付款日期时,=SUMIFS(C2:C7,A2:A7,"North",D2:D7,"") 把 North 中尚未付款的销售额加起来。

练习:SUMIFS

轮到你了:South 的苹果
F2
ABCDEF
1RegionProductSalesConditionTotal
2NorthApple120South, Apple
3SouthPear45
4NorthPear80
5EastApple55
6SouthApple200
7NorthApple30
8SouthApple75
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 把地区为 South 且产品为 Apple 的销售额加起来。在 F2 中写公式。

轮到你了:某段时间内 North 的销售额
G4
ABCDEFG
1RegionProductSalesDateSettingValue
2NorthApple1202026-01-05Start2026-01-10
3SouthPear452026-01-12End2026-03-05
4NorthPear802026-02-03Total
5EastApple552026-02-18
6SouthApple2002026-03-02
7NorthApple302026-03-20
8NorthPlum652026-03-01
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 把日期在 G2 到 G3 之间(含两端)的 North 销售额加起来。在 G4 中写公式。

SUMIFS、SUMIF 和 SUMPRODUCT 的对比

你需要使用
一个条件SUMIF(range,criteria,sum_range) 或只有一对条件的 SUMIFS
多个条件,全部成立SUMIFS(sum_range,range1,criteria1,range2,criteria2)
同一列中满足几个值之一SUM(SUMIFS(sum_range,range,{"a","b"}))
基于计算的条件(日期的月份、一列与另一列比较、单价乘以数量)SUMPRODUCT
同样的条件,但要计数COUNTIFS

如果 SUMIFS 返回 0,就用 COUNTIFS 在相同的区域上逐个检查每个条件:计数为 0 的那个条件就是从来没有匹配上的,原因通常是末尾多了空格、数字以文本形式存储,或者把单元格写进了引号(写成了 ">=G2",而不是 ">="&G2)。

常见问题

SUMIF 和 SUMIFS 有什么区别?

SUMIF 只接受一个条件,求和区域写在最后:=SUMIF(A2:A7,"North",C2:C7)。SUMIFS 接受任意多个条件,求和区域写在最前面:=SUMIFS(C2:C7,A2:A7,"North",B2:B7,"Apple")。只有一个条件时,两者得到的合计相同。

SUMIFS 怎样按日期范围求和?

把日期列用两次,分别给出开始和结束:=SUMIFS(C2:C7,D2:D7,">="&G2,D2:D7,"<="&G3) 把日期在 G2 到 G3 之间(含两端)的销售额加起来。

SUMIFS 能用“或”逻辑吗?

不能直接用:它的条件之间是“且”的关系。给一个条件一个列表,再把结果加起来:=SUM(SUMIFS(C2:C7,A2:A7,{"North","South"})) 对 North 和 South 求和。

SUMIFS 为什么返回 #VALUE!?

求和区域和条件区域的大小不一样,比如 C2:C7 和 A2:A8。和 SUMIF 不同,SUMIFS 不会调整区域大小;每个区域的行数和列数都必须相同。

怎样让 SUMIFS 的某个条件变成可选的?

筛选单元格为空时,用匹配任意文本的通配符 "*" 代替它:=SUMIFS(C2:C7,A2:A7,IF(G2="","*",G2))。G2 为空时,所有地区都会被包括在内。

Coddy 编程语言插图

和 Coddy 一起学编程

开始