📥 本章配套练习册(数据已录入、写完公式自动判分):点击下载 第09章-SUMIF函数-练习.xlsx
难度:⭐⭐ | 建议用时:35 分钟 | 前置知识:第08章 COUNTIF(条件写法完全相同)
本章学习目标
- 会用 SUMIF 对"满足条件的行"求和
- 掌握三参数写法和两参数写法的区别
- 与 COUNTIF 对比记忆,条件规则直接迁移
一、这个函数是干什么的?
SUMIF = SUM(求和)+ IF(如果):如果满足条件,就把对应的数字加进来。
生活化场景:
- 只算销售部的工资总额
- 只算"苹果"这一种产品的销量
- 只把大于 1000 的订单金额加起来
COUNTIF 数"有几个",SUMIF 算"加起来是多少"——两兄弟条件写法一模一样。
二、语法结构
|
|
| 参数 | 是否必须 | 说明 |
|---|---|---|
| 条件区域 | 必须 | 检查条件的区域,如部门列 B2:B9 |
| 条件 | 必须 | 与 COUNTIF 完全相同的四种写法 |
| 求和区域 | 可选 | 真正要加总的数字区域,如工资列 D2:D9 |
两种用法对比(重点!)
三参数:条件在一列,求和在另一列(最常用)
|
|
两参数:条件和求和是同一列(省略第三参数)
|
|
三、基础示例(手把手)
员工表(与第08章相同):
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 姓名 | 部门 | 性别 | 工资 |
| 2 | 张三 | 销售部 | 男 | 8500 |
| 3 | 李四 | 技术部 | 男 | 12000 |
| 4 | 王五 | 销售部 | 女 | 9200 |
| 5 | 赵六 | 技术部 | 女 | 11500 |
| 6 | 孙七 | 人事部 | 女 | 7800 |
| 7 | 周八 | 销售部 | 男 | 11000 |
| 8 | 吴九 | 技术部 | 男 | 13500 |
| 9 | 郑十 | 人事部 | 女 | 8200 |
示例1:销售部工资总额
|
|
结果:28700(8500 + 9200 + 11000)
逐步解读:
- COUNTIF 式的扫描:逐行检查 B 列是否 = “销售部”
- 第2行 ✓ → 把同行 D 列的 8500 加进来
- 第4行 ✓ → 加 9200;第7行 ✓ → 加 11000
- 其他行 ✗ → 跳过
- 合计 28700
关键理解:条件区域和求和区域按行一一对应——B2 满足条件,就加 D2。
示例2:工资大于 10000 的工资总和(两参数)
|
|
结果:48000(12000 + 11500 + 11000 + 13500)
解读:省略第三参数时,第一参数身兼两职:既负责检查 “>10000”,又负责加总。
示例3:通配符求和
|
|
结果:94000(所有部门都带"部"字,等于全部工资)——演示通配符在 SUMIF 中同样可用。
四、进阶用法
1. 条件外置(做成可切换的汇总表)
在 F1 输入部门名"销售部",公式引用它:
|
|
文本条件直接引用单元格时不需要 & 拼接(只有比较符号才需要 ">"&F1)。把 F1 改成"技术部",合计自动变——一个会动的汇总表就做好了。
2. COUNTIF 与 SUMIF 联手算"条件平均"
技术部的平均工资:
|
|
结果:37000 / 3 = 12333.33。虽然没有 AVERAGEIF 直接,但用你学过的两个函数就能拼出来。
3. 常见搭配数据模型
SUMIF 最适合"一列分类、一列数值"的表:按部门汇总工资、按产品汇总销量、按月份汇总支出、按客户汇总订单……职场报表十张里有八张是这个结构。
五、常见错误与注意事项
| 问题 | 原因 | 解决 |
|---|---|---|
| 结果明显偏小/为0 | 条件区域和求和区域行数不一致(如 B2:B9 配 D2:D8) | 两个区域必须同样大小、行对齐 |
| 把求和区域写成条件区域 | 参数顺序记混 | 记住:先条件,后求和 |
| 两参数三参数乱用 | 想用三参数结果省略了第三参数 | 条件列≠求和列时必须写三参数 |
| 文本条件不命中 | 数据有空格(“销售部 “) | 检查并清理数据 |
| 整列引用变慢 | 老旧电脑 + 巨大数据 | 限制范围如 B2:B10000 |
六、练习题(请先独立完成)
练习数据准备
使用与第08章相同的员工表(A1:D9)。如果你第08章已经录入过,直接沿用即可。
题目
| 题号 | 题目 | 在何处作答 |
|---|---|---|
| 1 | 计算技术部工资总额 | F2 |
| 2 | 计算人事部工资总额 | F3 |
| 3 | 计算女性员工工资总额 | F4 |
| 4 | 计算工资大于 10000 的工资总和(两参数写法) | F5 |
| 5 | 计算工资小于等于 9000 的工资总和 | F6 |
| 6 | 在 H1 输入"销售部”,用引用 H1 的方式计算该部门工资总额;然后把 H1 改成"技术部"观察变化 | F7 |
| 7 | 挑战:计算销售部的平均工资(用 SUMIF ÷ COUNTIF) | F8 |
七、练习讲解(做完再看)
第1题讲解
条件在 B 列(部门),求和在 D 列(工资)→ 三参数:=SUMIF(B2:B9,"技术部",D2:D9)。
验证:12000 + 11500 + 13500 = 37000。
第2题讲解
同上结构:=SUMIF(B2:B9,"人事部",D2:D9) → 7800 + 8200 = 16000。
第3题讲解
条件换成了性别列(C 列),求和仍是工资列:=SUMIF(C2:C9,"女",D2:D9)。
验证:王五 9200 + 赵六 11500 + 孙七 7800 + 郑十 8200 = 36700。
要点:条件区域不一定是 B 列,哪列装条件就检查哪列。
第4题讲解
条件和求和都是工资列本身 → 两参数:=SUMIF(D2:D9,">10000")。
验证:12000 + 11500 + 11000 + 13500 = 48000。
也可以写三参数 =SUMIF(D2:D9,">10000",D2:D9),效果相同,两参数更简洁。
第5题讲解
=SUMIF(D2:D9,"<=9000") → 8500 + 7800 + 8200 = 24500。注意 9200 不满足 ≤9000。
第6题讲解
=SUMIF(B2:B9,H1,D2:D9)。文本条件直接引用单元格即可,不用引号不用 &。
H1 = 销售部 → 28700;改成技术部 → 37000。这就是动态汇总表的雏形。
第7题讲解
条件平均 = 条件和 ÷ 条件数:
|
|
28700 ÷ 3 ≈ 9566.67。如果想保留两位小数,套一个第03章的 ROUND:
|
|
八、参考答案
| 题号 | 公式 | 结果 |
|---|---|---|
| 1 | =SUMIF(B2:B9,"技术部",D2:D9) |
37000 |
| 2 | =SUMIF(B2:B9,"人事部",D2:D9) |
16000 |
| 3 | =SUMIF(C2:C9,"女",D2:D9) |
36700 |
| 4 | =SUMIF(D2:D9,">10000") |
48000 |
| 5 | =SUMIF(D2:D9,"<=9000") |
24500 |
| 6 | =SUMIF(B2:B9,H1,D2:D9) |
28700(H1=销售部时) |
| 7 | =SUMIF(B2:B9,"销售部",D2:D9)/COUNTIF(B2:B9,"销售部") |
9566.67 |
本章小结
=SUMIF(条件区域, 条件, 求和区域):条件区域满足条件 → 把求和区域同一行的数字加进来- 条件列和求和列是同一列时,可以省略第三参数(两参数写法)
- 条件规则与 COUNTIF 完全相同(引号、比较符、通配符、& 拼接)
- 两区域必须行对齐、一样大
下一章:第10章:COUNTIFS 函数