在 excel 表格合并表格数据,常见分为两种需求,一种是多个工作表结构一致,纵向追加合并,也就是把多个 sheet 的数据上下拼接到一张总表,另一种是根据关键字横向匹配合并,也就是依靠编号姓名这类共同字段,把另外一张表的列数据匹配过来,很多新手容易把合并单元格和合并表格数据弄混,合并单元格只是把单个区域格子融合,并不是把多张表的数据汇总,这个是高频误区,纵向合并可以使用 Power Query,也可以用 VSTACK 函数,横向匹配合并主要使用 XLOOKUP 或者 VLOOKUP,这套功能在 excel 2019 之后版本还有 365 支持,老版本 excel 没有 VSTACK,只能用 Power Query 或者辅助公式,WPS 表格新版同样支持这些函数,合并表格数据适合月度分表汇总,多部门台账汇总,优点是数据源更新之后,Power Query 方案可以刷新自动更新总表,缺点是如果各个分表表头不一致,合并之后会出现空列错位,合并之前必须统一表头名称和列顺序。
前置认知区分
纵向合并,多张表列结构相同,数据行数累加,相当于上下堆叠。横向合并,两张表都有关键主键,根据主键把另一张表的字段匹配填充到当前表,相当于左右拼接。合并单元格,只是同一张表内部单元格合并,不属于多表数据合并,不要混淆概念。
方法一 VSTACK 函数纵向合并多表数据
1 确认所有分表表头名称列顺序保持统一
2 新建汇总表,在汇总表第一个单元格输入公式
=VSTACK (表 1!A2:D100, 表 2!A2:D100, 表 3!A2:D100)
3 如果是 sheet 名称,写法就是 = VSTACK (一月!A2:D100, 二月!A2:D100)
4 按下回车,新版动态数组会自动溢出全部合并后的所有行数据
5 如果分表后续新增数据,可以把区域扩大,或者结合超级表,使用结构化引用,新增行自动纳入合并结果
方法二 Power Query 多工作表合并
1 选中任意分表数据,点击数据选项卡,自表格区域,加载到 Power Query
2 进入 Power Query 编辑器,把所有分表依次追加查询,选择将查询追加为新查询,追加多个表
3 确认列对齐,处理空值,然后关闭并上载,把合并结果输出到新工作表
4 后续分表数据修改之后,在汇总表右键刷新,合并表格数据自动更新,适合分表数量很多的场景
方法三 VLOOKUP XLOOKUP 横向关键字合并
1 选定主表,保留主键字段,比如编号
2 在主表空白列输入匹配公式,新版优先 XLOOKUP
=XLOOKUP (A2, 副表!A:A, 副表!B:B,"无匹配")
3 按下回车,下拉填充公式,副表对应列的数据就合并到主表
4 如果是老版本 excel,使用 VLOOKUP,注意查找值必须在选定区域第一列,这个是 VLOOKUP 的限制
进阶补充说明
如果分表表头有差异,Power Query 合并之后会自动新增空列,需要手动统一字段名称,删除多余空列。如果需要合并之后同时做求和统计,也就是分类汇总合并,可以使用合并计算功能,数据选项卡里面的合并计算,按类别汇总数值,适合按项目名称汇总金额,这个和单纯堆叠数据不是同一个逻辑。合并之后建议检查重复主键,横向匹配的时候如果副表存在重复关键字,XLOOKUP 默认只返回第一条匹配结果,会造成数据遗漏。
方案对比表格
| 合并方式 | 合并方向 | 适用版本 | 是否支持刷新更新 |
|---|---|---|---|
| VSTACK 函数 | 纵向堆叠 | excel365 新版 2021 | 公式自动重算 |
| Power Query 追加查询 | 纵向堆叠 | excel2016 及以上 | 支持手动刷新 |
| XLOOKUP VLOOKUP | 横向关键字匹配 | 新版优先 XLOOKUP | 公式自动重算 |
| 合并计算 | 分类数值汇总 | 全版本通用 | 不支持自动刷新 |
【常见问题】
问题 1 excel 表格怎么合并表格数据,VSTACK 提示错误是什么原因
回答 1 excel 表格怎么合并表格数据,VSTACK 报错,大多是 excel 版本不支持该函数,或者各个分表列数量不一致,解决办法是统一所有分表列数表头,老版本 excel 改用 Power Query 完成合并表格数据。
问题 2 excel 表格怎么合并表格数据,横向匹配合并出现很多 N/A 是什么原因
回答 2 excel 表格怎么合并表格数据,横向匹配合并出现 N/A,代表主键在副表里面找不到匹配项,检查主键是否有空格,大小写差异,或者编号格式文本和数字不统一,修正主键格式之后,合并表格数据就可以正常匹配。
问题 3 excel 表格怎么合并表格数据,合并之后分表修改总表不更新怎么办
回答 3 excel 表格怎么合并表格数据,如果是手动复制粘贴合并,分表修改总表不会联动更新,想要自动更新,需要改用 Power Query 或者 VSTACK 函数,修改分表之后刷新或者自动重算,总表合并表格数据同步变化。
【免责申明】
本文操作基于常规 excel 软件环境编写,不同版本函数支持情况存在差异,合并结果会受表头主键数据格式影响,本文仅供学习参考,不保证所有环境下效果完全一致。


