SUMM函数
Excel求和函数详解:SUM()、SUMIF()、SUMIFS()
一、SUM() 函数:基础求和
1. 基本语法
=SUM(number1, [number2], ...)
2. 参数说明
- number1:必需,第一个数字、单元格引用或区域
- number2, ...:可选,最多255个参数
3. 使用示例
示例1:直接数值求和
=SUM(10, 20, 30) // 结果:60
示例2:单元格引用求和
| A |
|------|
| 10 |
| 20 |
| 30 |
=SUM(A1:A3) // 结果:60
=SUM(A1, A2, A3) // 结果:60
示例3:混合参数
| A | B |
|------|------|
| 10 | 5 |
| 20 | 8 |
| 30 | 3 |
=SUM(A1:A3, 40, B1:B2) // 结果:10+20+30+40+5+8 = 113
示例4:跳过非数值
| A |
|----------|
| 10 |
| 文本 |
| 20 |
| TRUE |
=SUM(A1:A4) // 结果:31(10+20+1,TRUE转为1,文本被忽略)
4. 特殊功能
| A | B |
|------|------|
| 2 | 5 |
| 3 | 4 |
| 4 | 3 |
=SUM(A1:A3*B1:B3) // 数组公式:2*5 + 3*4 + 4*3 = 10+12+12 = 34
| C |
|------|
| 45 |
| 55 |
| 38 |
| 62 |
=SUM(--(C1:C4>50)) // 统计大于50的个数:结果为2
二、SUMIF() 函数:单条件求和
1. 基本语法
=SUMIF(range, criteria, [sum_range])
2. 参数详解
| 参数 |
说明 |
必需 |
| range |
要应用条件的单元格区域 |
是 |
| criteria |
条件,可以是数字、表达式、文本或单元格引用 |
是 |
| sum_range |
要求和的实际单元格区域(可选,省略时对range求和) |
否 |
3. 条件写法大全
示例数据表1:水果销售
| A |
B |
| 苹果 |
50 |
| 香蕉 |
30 |
| 苹果 |
40 |
| 橙子 |
25 |
| 苹果汁 |
35 |
| 梨 |
45 |
=SUMIF(A:A,"苹果",B:B) // 等于"苹果":50+40 = 90
=SUMIF(A:A,"*果",B:B) // 以"果"结尾:50+30+40+45 = 165
=SUMIF(A:A,"苹*",B:B) // 以"苹"开头:50+40+35 = 125
=SUMIF(A:A,"?果",B:B) // 两个字且以"果"结尾:50+30+40 = 120
=SUMIF(A:A,"<>苹果",B:B) // 不等于"苹果":30+25+35+45 = 135
示例数据表2:销售金额
=SUMIF(B:B,">100") // 大于100:150+220+310 = 680
=SUMIF(B:B,">=500") // 大于等于500:0
=SUMIF(B:B,"<>0") // 不等于0:150+80+220+95+310+45 = 900
=SUMIF(B:B,"<1000") // 小于1000:900
=SUMIF(B:B,150) // 等于150:150
示例数据表3:日期销售
| C |
D |
| 2024-01-05 |
500 |
| 2024-02-10 |
300 |
| 2024-01-15 |
400 |
| 2024-03-20 |
600 |
=SUMIF(C:C,">=2024-01-01",D:D) // 500+300+400+600 = 1800
=SUMIF(C:C,">"&DATE(2024,1,10),D:D) // 大于2024-01-10:300+400+600 = 1300
=SUMIF(C:C,">="&TODAY(),D:D) // 大于等于今天
单元格引用作为条件
| D2 | E2 |
|-------|-------|
| 苹果 | 100 |
=SUMIF(A:A,D2,B:B) // D2的内容作为条件
=SUMIF(B:B,">"&E2) // 大于E2的值
4. 实际应用示例
示例数据表4:销售数据
| A |
B |
| 销售员 |
销售额 |
| 张三 |
5000 |
| 李四 |
8000 |
| 张三 |
3000 |
| 王五 |
6000 |
| 李四 |
4000 |
| 张三 |
2000 |
求"张三"的销售额:=SUMIF(A:A,"张三",B:B) // 5000+3000+2000 = 10000
求销售额>5000的总和:=SUMIF(B:B,">5000") // 8000+6000 = 14000
求非"张三"的销售额:=SUMIF(A:A,"<>张三",B:B) // 8000+6000+4000 = 18000
示例数据表5:学生成绩
| A |
B |
| 班级 |
成绩 |
| 1班 |
85 |
| 2班 |
78 |
| 1班 |
92 |
| 3班 |
45 |
| 1班 |
88 |
| 2班 |
65 |
| 李华 |
90 |
| 李明 |
75 |
求1班总成绩:=SUMIF(A:A,"1班",B:B) // 85+92+88 = 265
求及格(>=60)总成绩:=SUMIF(B:B,">=60") // 85+78+92+88+65+90+75 = 573
求姓"李"的学生成绩:=SUMIF(A:A,"李*",B:B) // 90+75 = 165
5. 常见错误及处理
错误写法:=SUMIF(B:B,">D2") // D2会被当作文本"100"
正确写法:=SUMIF(B:B,">"&D2) // 用&连接,理解为">100"
错误:=SUMIF(A:A,条件,B1:B10) // 区域大小不一致
正确:=SUMIF(A1:A10,条件,B1:B10) // 区域大小相同
三、SUMIFS() 函数:多条件求和
1. 基本语法
=SUMIFS(sum_range, criteria_range1, criteria1,
[criteria_range2, criteria2], ...)
2. 参数说明
| 参数 |
说明 |
| sum_range |
要求和的实际单元格区域 |
| criteria_range1 |
第一个条件的区域 |
| criteria1 |
第一个条件 |
| criteria_range2, criteria2, ... |
可选,最多127个条件对 |
3. 使用示例
示例数据表6:销售明细
| A |
B |
C |
| 部门 |
月份 |
销售额 |
| 销售部 |
1月 |
5000 |
| 技术部 |
1月 |
3000 |
| 销售部 |
2月 |
6000 |
| 人事部 |
1月 |
2000 |
| 销售部 |
1月 |
4000 |
| 技术部 |
2月 |
3500 |
求"销售部"在"1月"的销售额:
=SUMIFS(C:C, A:A,"销售部", B:B,"1月") // 5000+4000 = 9000
求"销售部"在"1月"且销售额>4000的记录:
=SUMIFS(C:C, A:A,"销售部", B:B,"1月", C:C,">4000") // 5000
求1月份所有部门销售额:
=SUMIFS(C:C, B:B,"1月") // 5000+3000+2000+4000 = 14000
示例数据表7:日期范围销售
| A |
B |
| 日期 |
销售额 |
| 2024-01-05 |
500 |
| 2024-01-15 |
300 |
| 2024-02-10 |
400 |
| 2024-01-25 |
600 |
| 2024-02-20 |
200 |
求2024年1月的销售额:
=SUMIFS(B:B, A:A,">=2024-01-01", A:A,"<=2024-01-31") // 500+300+600 = 1400
4. 实际工作场景
场景1:销售数据分析
| 销售员 |
产品 |
地区 |
销售额 |
日期 |
| 张三 |
手机 |
华东 |
5000 |
2024-01-05 |
| 李四 |
电脑 |
华南 |
8000 |
2024-01-10 |
| 张三 |
手机 |
华北 |
6000 |
2024-02-15 |
| 王五 |
平板 |
华东 |
3000 |
2024-01-20 |
| 张三 |
电脑 |
华东 |
4000 |
2024-02-25 |
1. 张三在华东区销售手机的总金额:
=SUMIFS(销售额列, 销售员列,"张三", 产品列,"手机", 地区列,"华东") // 5000
2. 2024年Q1(1-3月)手机销售额:
=SUMIFS(销售额列, 产品列,"手机", 日期列,">=2024-01-01", 日期列,"<=2024-03-31") // 5000+6000 = 11000
3. 销售额>4000且产品为手机或电脑的记录:
需要结合多个SUMIFS:
=SUMIFS(销售额列, 销售额列,">4000", 产品列,"手机") + SUMIFS(销售额列, 销售额列,">4000", 产品列,"电脑") // 5000+8000+6000 = 19000
场景2:库存管理
| 商品ID | 类别 | 仓库 | 库存量 | 预警值 | 状态 |
|--------|----------|--------|--------|--------|--------|
| P001 | 食品 | 北京仓 | 100 | 50 | 正常 |
| P002 | 电子产品 | 上海仓 | 200 | 80 | 正常 |
| P003 | 食品 | 北京仓 | 30 | 50 | 正常 |
| P004 | 电子产品 | 北京仓 | 150 | 100 | 停用 |
| P005 | 日用品 | 上海仓 | 80 | 60 | 正常 |
1. "食品"类在"北京仓"的库存总量:
=SUMIFS(库存量列, 类别列,"食品", 仓库列,"北京仓") // 100+30 = 130
2. 库存低于预警值的"正常"商品总量:
=SUMIFS(库存量列, 库存量列,"<"&预警值列, 状态列,"正常") // 30+80 = 110
3. 排除"已停用"商品的库存:
=SUMIFS(库存量列, 状态列,"<>停用") // 100+200+30+80 = 410
5. 高级技巧
技巧1:使用通配符
| A | C |
|--------------|----------|
| 北京分公司 | 500 |
| 上海分公司 | 300 |
| 北京办事处 | 200 |
| 广州分公司 | 400 |
=SUMIFS(C:C, A:A,"*分公司") // 以"分公司"结尾:500+300+400 = 1200
技巧2:条件为公式结果
| B |
|----------|
| 150 |
| 80 |
| 220 |
| 95 |
=SUMIFS(B:B, B:B,">"&AVERAGE(B:B)) // 大于平均值(150+80+220+95)/4=136.25:150+220 = 370
技巧3:处理文本型数字
| A | C |
|--------|----------|
| 001 | 100 |
| 002 | 200 |
| 003 | 150 |
=SUMIFS(C:C, A:A,TEXT(1,"0")) // 查找文本"1",结果为0
=SUMIFS(C:C, A:A,"001") // 直接使用文本,结果为100
四、三函数对比总结
| 特性 |
SUM() |
SUMIF() |
SUMIFS() |
| 条件数量 |
无条件 |
单条件 |
多条件(最多127个) |
| 语法顺序 |
SUM(求和区域) |
SUMIF(条件区域,条件,求和区域) |
SUMIFS(求和区域,条件区域1,条件1,...) |
| 求和区域 |
直接是参数 |
第三个参数 |
第一个参数 |
| 性能 |
最快 |
中等 |
较慢(条件多时) |
| 适用场景 |
简单求和 |
按单个条件筛选求和 |
复杂多条件筛选求和 |
| 通配符 |
不支持 |
支持 |
支持 |
| 数组公式 |
支持 |
有限支持 |
有限支持 |
五、综合应用示例
完整数据表示例
| A |
B |
C |
D |
E |
| 部门 |
销售员 |
产品 |
日期 |
销售额 |
| 销售部 |
张三 |
手机 |
2024-01-05 |
5000 |
| 技术部 |
李四 |
电脑 |
2024-01-10 |
8000 |
| 销售部 |
王五 |
手机 |
2024-02-15 |
6000 |
| 销售部 |
张三 |
平板 |
2024-01-20 |
3000 |
| 技术部 |
李四 |
手机 |
2024-02-25 |
4000 |
| 销售部 |
张三 |
手机 |
2024-03-10 |
4500 |
| 人事部 |
赵六 |
电脑 |
2024-01-15 |
5500 |
各种求和需求解决方案
1. 总销售额:=SUM(E:E) // 5000+8000+6000+3000+4000+4500+5500 = 36000
2. 销售部总销售额:
=SUMIF(A:A,"销售部",E:E) // 5000+6000+3000+4500 = 18500
3. 张三的总销售额:
=SUMIF(B:B,"张三",E:E) // 5000+3000+4500 = 12500
4. 手机的总销售额:
=SUMIF(C:C,"手机",E:E) // 5000+6000+4000+4500 = 19500
5. 销售部张三的销售额:
=SUMIFS(E:E, A:A,"销售部", B:B,"张三") // 5000+3000+4500 = 12500
6. 2024年1月手机销售额:
=SUMIFS(E:E, C:C,"手机", D:D,">=2024-01-01", D:D,"<=2024-01-31") // 5000
7. 销售部且销售额>4000:
=SUMIFS(E:E, A:A,"销售部", E:E,">4000") // 5000+6000+4500 = 15500
通过以上详细的示例数据表和应用场景,您可以清楚地看到SUM、SUMIF、SUMIFS三个函数在实际工作中的具体应用方式。掌握这三个函数,您就能解决Excel中90%的求和需求!