1
场景背景
HR 有一张全公司员工总表,各部门主管只要看自己部门的人。传统做法是手动筛选 → 复制 → 新建 Sheet → 粘贴,部门一多就崩溃。用 FILTER 可以让每个分表自动跟着总表更新。
2
数据结构
共 2 个 Sheet3
解决步骤
1
第 1 步:先列出所有部门
用 UNIQUE 从总表部门列取出不重复的部门名,作为分表的清单。
=UNIQUE(总表!C2:C9)
2
第 2 步:新建分表,写 FILTER
在「销售部」表 A2 输入 FILTER,条件写 部门="销售部",整行明细自动溢出。
=FILTER(总表!A2:D9,总表!C2:C9="销售部","无记录")
3
第 3 步:每个分表只改条件
技术部、市场部同样公式,只把 "销售部" 换成对应部门。也可以引用单元格,改一格全表变。
=FILTER(总表!A2:D9,总表!C2:C9=A1,"无记录")
4
第 4 步:老版本用高级筛选或 Power Query
没有 FILTER 的版本:数据 → 筛选 → 按部门筛 → 复制到新表;或用 Power Query 按部门拆分到多个工作表。
4
完整公式与逐段拆解
=FILTER(总表!A2:D9,总表!C2:C9="销售部","无记录")
总表!A2:D9要筛选的整片数据(含所有列)总表!C2:C9="销售部"条件:部门列等于销售部,返回 TRUE/FALSE 数组"无记录"一条都没有时显示这个,避免 #CALC!| A | B | C | D | |
|---|---|---|---|---|
| 1 | 工号 | 姓名 | 部门 | 月薪 |
| 2 | E01 | 张三 | 销售部 | 8000 |
| 3 | E03 | 王五 | 销售部 | 7600 |
| 4 | E05 | 孙七 | 销售部 | 8200 |
| 5 | ||||
| 6 | ||||
| 7 | ||||
| 8 | ||||
| 9 |
当前表:销售部 · 公式单元格 A2 · 绿色底为公式,蓝色底为动态数组溢出结果
销售部表只保留本部门 3 个人,总表一改,分表自动更新
6
数据流向
数据流向演示1 / 4
来源总表!A2:D9
➜
去向FILTER 条件
总表全部明细
来源总表!C2:C9
→
去向TRUE/FALSE
判断部门列
来源TRUE/FALSE
→
去向筛选结果
保留为 TRUE 的整行
来源筛选结果
→
去向销售部!A2
溢出到分表
跟着高亮一步步看数据怎么流动
7
注意事项与坑
!FILTER 的溢出区域下方不能有内容,否则 #SPILL!。
!分表里不要再手写数据,会被溢出结果挡住。
!总表增加行时,FILTER 的区域要同步扩大,或用整列引用(性能会差一点)。
8