每到月底做汇总,打开工作簿看到十几个结构一模一样的分表,如果还在用“复制粘贴大法”,不仅效率低,还容易漏行错行。比如下面这份销售台账,三个分公司的月度报表明明字段完全一致,却分散在不同工作表中,想查看整体销售情况必须反复切换工作表,汇总统计更是费时费力。

▲ 原始数据(表1-北京分公司)

▲ 原始数据(表2-上海分公司)

▲ 原始数据(表3-广州分公司)
从数据结构来看,这三张分表逻辑清晰:均为“月份-产品-销售额”的三列标准流水账,差异仅在于“分公司”这一维度隐含在工作表名称中,而非数据列内。合并的核心逻辑就是——将多表数据纵向堆叠,同时补全缺失的“分公司”归属列,最终形成一张包含完整维度的总表。

▲ 原始数据(合并总表)
面对这种“多表同构需合并”的典型场景,其实大可不必手动搬运。我们可以通过 Power Query 追加查询、VSTACK 函数以及合并计算功能三种方法,快速完成数据的自动归集与整理。
方法1:VSTACK 函数极速合并
对于使用 Microsoft 365 或 Excel 2021 的用户,利用 VSTACK 函数是解决多表合并最直观的方法。该函数能够将多个数组合并成一个纵向堆叠的新数组,非常适合处理这种“多表同构”的数据场景。我们只需在公式中分别引用各分表的数据区域,并利用常量数组补充缺失的“分公司”名称即可。
步骤
1.首先,在 Excel 中插入一个新的工作表,并命名为“合并总表”。
2.在新表的 A1 单元格输入表头:“分公司”、“月份”、“产品”、“销售额”。
3.选中 A2 单元格,准备输入公式。由于涉及的跨表引用较多,建议通过点击工作表标签的方式来选取数据区域。
4.在编辑栏输入公式,按照“常量列 + 数据区域”的结构,依次连接北京、上海、广州三个分表的数据。输入完毕后,按下 Enter 键确认,即可看到所有数据瞬间填充完毕。
公式
该公式利用 HSTACK 函数将分表名称与原数据列横向拼合,再通过 VSTACK 函数将三部分数据纵向合并。
// 写在 A2 单元格 =VSTACK( HSTACK({"北京"}, 北京!A2:C4), HSTACK({"上海"}, 上海!A2:C4), HSTACK({"广州"}, 广州!A2:C4) )
▲ 处理后效果(方法1)
方法2:Power Query 追加查询
对于数据量较大或需要定期重复执行的合并任务,Power Query 是更为稳健的解决方案。它不仅能通过“追加查询”功能将多张分表的数据自动汇总是总表,还能在源数据更新时实现一键刷新,彻底告别重复劳动。
步骤
5.建立查询:打开工作簿,切换到 数据 选项卡,选中“北京”工作表中的 A1:C4 单元格区域(包含表头),点击 自表格/区域 按钮,此时会弹出“创建表”对话框,勾选“表包含标题”,点击“确定”。
6.添加归属列:进入 Power Query 编辑器界面后,切换到 添加列 选项卡,点击 自定义列 按钮。在弹出的对话框中,新列名输入“分公司”,自定义列公式输入 `"北京"`(注意英文双引号),点击“确定”。
7.调整列序:按住鼠标左键拖动“分公司”列的标题,将其移动至第一列位置,保持与目标总表结构一致。
8.加载临时查询:点击左上角的 关闭并加载 按钮,将查询结果加载到 Excel 中(此处生成的是北京分公司的临时表)。
9.重复处理其他分表:参照步骤 1-4,分别对“上海”和“广州”工作表建立查询,并添加对应的“上海”、“广州”自定义列。建议将这些查询分别命名为“北京”、“上海”、“广州”以便识别。
10.追加查询:点击 数据 选项卡下的 获取数据 -> 合并查询 -> 追加。在弹出的对话框中选择“三个或更多表”,将“北京”、“上海”、“广州”三个查询依次添加到“要追加的表”列表中,点击“确定”。
11.完成加载:在生成的追加查询中,确认数据无误后,再次点击 关闭并加载,将最终合并结果加载至新的工作表(即“合并总表”)。
公式
Power Query 主要通过界面操作完成,若需在高级编辑器中查看生成的 M 代码逻辑,核心步骤如下(无需在单元格输入):
// Power Query M 代码片段(高级编辑器查看) = Table.Combine({北京, 上海, 广州})

▲ 处理后效果(方法2)
解法总览
针对“多表同构需合并”这一典型场景,上文详细介绍了三种主流解法,大家可根据自身情况各取所需:
·方法1:VSTACK 函数 —— 动态实时,无需刷新。适合使用 Excel 365/2021 的用户,公式简洁,源数据变动后结果自动更新。
*方法2:Power Query —— 自动化神器,一键刷新。适合数据量大、需要定期重复合并的场景,一次设置,终身受益。
·方法3:合并计算 —— 经典功能,多表汇总。适合习惯传统操作或需要按类别(如“产品”)进行求和汇总而非单纯合并明细的用户。
以上方法无绝对优劣之分,请向下浏览,挑最顺手的一款使用。
常见问题
Q1:源数据增加了新行,合并后的总表会自动更新吗?
A1:这取决于您使用的方法。VSTACK 函数具有动态数组特性,若引用的区域涵盖了新增行(或使用了 `A#` 整列引用),结果会实时自动更新。Power Query 需要在“数据”选项卡下点击“刷新”按钮才能获取最新数据。合并计算则需要重新执行一遍操作步骤。
Q2:为什么我的 VSTACK 函数显示 #VALUE! 错误?
A2:常见原因有两个:一是引用了不同工作表中大小不一致的区域(虽然本例通过 HSTACK 补齐了列数,但行数不一致通常不影响);二是公式中使用了中文标点符号(如双引号 `""` 写成了中文引号),请确保公式中的符号均为英文半角。
Q3:使用 Power Query 追加查询时,列名必须完全一致吗?
A3:是的。Power Query 依赖列名进行匹配。如果分表中存在“销售额”与“销售额(元)”这种细微差异,系统会判定为两列,导致结果出现空值或分裂。建议在追加前,在 Power Query 编辑器中双击列名统一修改。
总结
本文针对“同一工作簿多表合并”的需求,提供了从“轻量级公式”到“专业数据处理”再到“经典功能”的三种解决方案。
·VSTACK 函数胜在“快”与“活”,写完公式即得结果,且能实时响应数据变化,是 365 用户处理临时性、中小规模合并的首选。
·Power Query 胜在“稳”与“强”,虽然初次设置步骤稍多,但它能完美应对后续的数据源变动与重复性工作,是职场办公自动化的必备技能。
·合并计算作为 Excel 的经典功能,虽操作略显繁琐,但在需要分类汇总(而非简单物理堆叠)时依然有一席之地。
建议根据工作频率和数据量级选择:偶尔一次、数据量小用 VSTACK;定期要做、数据量大用 Power Query。
原理理顺了,复杂的报表也能化繁为简。如果本文的方法帮您节省了宝贵的时间,欢迎点赞、在看支持我们,更多 Excel 高效办公技巧,我们下期见!
夜雨聆风