组合多 Sheet 联动 · 4 个 Sheet
按条件动态引用不同 Sheet 的数据
选一个部门,自动显示对应分表的数据。
1
场景背景
做部门看板时,希望在一个单元格选择部门,下面的表格就自动显示该部门分表的数据。核心是 INDIRECT:把「部门名」和「单元格地址」拼成字符串,再让 INDIRECT 当成真实引用去取值。
2
数据结构
共 2 个 Sheet3
解决步骤
1
第 1 步:做一个部门下拉
数据 → 数据验证 → 序列,来源写 销售部,技术部,市场部。
2
第 2 步:拼出引用地址
把部门名和单元格地址拼起来,注意表名要用引号包住(这里没空格可省略)。
=B1&"!A"&ROW()
3
第 3 步:INDIRECT 取值
用 INDIRECT 把拼出来的字符串当地址,取对应分表的值。
=IFERROR(INDIRECT($B$1&"!A"&ROW()),"")
4
第 4 步:多列一起取
把 A 换成 B、C 就能取其他列,或者用 INDIRECT 拼区域再 INDEX。
=IFERROR(INDIRECT($B$1&"!B"&ROW()),"")
4
完整公式与逐段拆解
=IFERROR(INDIRECT($B$1&"!A"&ROW()),"")
$B$1选择的部门名,比如「销售部」&"!A"&ROW()拼出 "销售部!A4" 这样的地址字符串INDIRECT(...)把这个字符串当成真实引用去取值IFERROR(...,"")分表不存在或超范围时显示空白| A | B | C | D | |
|---|---|---|---|---|
| 1 | 工号 | 姓名 | 部门 | 月薪 |
| 2 | E01 | 张三 | 销售部 | 8000 |
| 3 | E03 | 王五 | 销售部 | 7600 |
| 4 | E05 | 孙七 | 销售部 | 8200 |
| 5 | ||||
| 6 | ||||
| 7 | ||||
| 8 | ||||
| 9 |
当前表:销售部 · 公式单元格 A2 · 绿色底为公式,蓝色底为动态数组溢出结果
切换分表就能看到各部门的数据,INDIRECT 可以按部门名动态定位
6
数据流向
数据流向演示1 / 4
来源看板!B1
➜
去向拼接表名
选择「销售部」
来源拼接表名
→
去向INDIRECT
拼成 销售部!A4
来源INDIRECT
→
去向分表单元格
去对应分表取值
来源分表单元格
→
去向看板!A4
显示在看板上
跟着高亮一步步看数据怎么流动
7
注意事项与坑
!INDIRECT 拼出来的表名必须和实际 Sheet 名完全一致,多一个空格都不行。
!表名含空格时必须写成 "'销售 部'!A1"。
!INDIRECT 是易失函数且不支持引用已关闭的工作簿,注意性能。
8