1
场景背景
HR 拿到一张 8 个人的工资明细,每行有工号、姓名、部门、基本工资、绩效、加班费。老板要一张「按部门看」的汇总:每个部门几个人、总共发多少钱、人均多少。手动筛选再加总容易漏行,用 SUMIF / COUNTIF 做一次就永久复用。
2
数据结构
共 2 个 Sheet3
解决步骤
1
第 1 步:先算每行的应发合计
在「工资明细」G2 输入三项相加的公式,双击填充柄往下填满 8 行。这一步把三列收入合成一列,后面汇总只看这一列。
=SUM(D2:F2)
2
第 2 步:数每个部门几个人
在「部门汇总」B2 用 COUNTIF,条件区域选整个 C 列,条件引用左边的部门名 A2。往下拖,三个部门一次算完。
=COUNTIF(工资明细!C:C,A2)
3
第 3 步:按部门汇总金额
SUMIF 三个参数:在哪列判断(C 列部门)、判断什么(A2)、加总哪列(G 列合计)。注意条件区域和求和区域都要用整列或等长区域。
=SUMIF(工资明细!C:C,A2,工资明细!G:G)
4
第 4 步:算人均并做合计行
人均 = 合计 ÷ 人数,用 IFERROR 防止人数为 0 时报 #DIV/0!。最后一行用 SUM 把三个部门加起来核对总数。
=IFERROR(C2/B2,0)
4
完整公式与逐段拆解
=SUMIF(工资明细!C:C,A2,工资明细!G:G)
工资明细!C:C条件区域:整列部门,行数增加也不用改公式A2条件:取左边这个部门名,拖公式时自动换成技术部、市场部工资明细!G:G求和区域:只加总「应发合计」这一列| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | 部门 | 人数 | 应发合计 | 人均 | |||
| 2 | 销售部 | 3 | 27,900 | 9,300 | |||
| 3 | 技术部 | 3 | 33,150 | 11,050 | |||
| 4 | 市场部 | 2 | 15,650 | 7,825 | |||
| 5 | 合计 | 8 | 76,700 | ||||
| 6 | |||||||
| 7 | |||||||
| 8 | |||||||
| 9 | |||||||
| 10 |
当前表:部门汇总 · 公式单元格 C2 · 绿色底为公式,蓝色底为动态数组溢出结果
部门汇总表里 C2 就是 SUMIF 的结果:销售部合计 35400
6
数据流向
数据流向演示1 / 4
来源工资明细!C2:C9
➜
去向判断条件
工资明细的 C 列(部门)
来源判断条件
→
去向筛选行
匹配「销售部」的行
来源工资明细!G2:G9
→
去向求和
把这些行的 G 列(应发合计)相加
来源求和
→
去向部门汇总!C2
结果写回部门汇总 C2
跟着高亮一步步看数据怎么流动
7
注意事项与坑
!条件区域的列必须和求和区域行数对齐,否则会算错位(整列写法最省心)。
!部门名前后有空格会导致匹配不上,用 TRIM 清洗源数据。
!合计行如果也包含「销售部」字样,会被重复计入,注意区域不要包含合计行。
8