跳到主要内容

sum

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:水果销售​

AB
苹果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:销售金额​

B
150
80
220
95
310
45
=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:日期销售​

CD
2024-01-05500
2024-02-10300
2024-01-15400
2024-03-20600
=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:销售数据​

AB
销售员销售额
张三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:学生成绩​

AB
班级成绩
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. 常见错误及处理​

D2B
100150
80
220
错误写法:=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:销售明细​

ABC
部门月份销售额
销售部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:日期范围销售​

AB
日期销售额
2024-01-05500
2024-01-15300
2024-02-10400
2024-01-25600
2024-02-20200
求2024年1月的销售额:
=SUMIFS(B:B, A:A,">=2024-01-01", A:A,"<=2024-01-31") // 500+300+600 = 1400

4. 实际工作场景​

场景1:销售数据分析​

销售员产品地区销售额日期
张三手机华东50002024-01-05
李四电脑华南80002024-01-10
张三手机华北60002024-02-15
王五平板华东30002024-01-20
张三电脑华东40002024-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,...)
求和区域直接是参数第三个参数第一个参数
性能最快中等较慢(条件多时)
适用场景简单求和按单个条件筛选求和复杂多条件筛选求和
通配符不支持支持支持
数组公式支持有限支持有限支持

五、综合应用示例​

完整数据表示例​

ABCDE
部门销售员产品日期销售额
销售部张三手机2024-01-055000
技术部李四电脑2024-01-108000
销售部王五手机2024-02-156000
销售部张三平板2024-01-203000
技术部李四手机2024-02-254000
销售部张三手机2024-03-104500
人事部赵六电脑2024-01-155500

各种求和需求解决方案​

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%的求和需求!