Excel 怎么合并多个工作表
几十个工作表要汇总成一张,复制粘贴容易漏行也容易串行。三种做法从少到多、从手工到自动,附带行数核对和常见踩坑。
每个月一张工作表,年底要汇总成一张总表。表少时复制粘贴就行;表多或者以后还会新增,就得用能刷新的办法,不然下个月还得从头再来。
入口在哪
三条路,按表的数量和以后会不会再增加来选:
- 手工复制粘贴:不需要找入口,新建一个空白工作表就能开始。
- Power Query 追加:在「数据」选项卡里找「获取数据」这一组,从里面选从文件、从工作簿导入。不同 Excel 版本这一组的图标和文字略有区别,找不到就在「数据」选项卡里从左往右看,一般靠左。
- VSTACK 函数:只有较新版本的 Excel 才有,直接在单元格里写公式;老版本输入后会提示名称无效。
另有一个老办法叫多重合并计算数据区域,入口在新版 Excel 里被收起来了,普通汇总用不上,这里不展开。
具体步骤
先看手工的办法。两三张表、以后不再增加,用它最省事:
- 新建工作表,命名成「汇总」。
- 打开第一张表,选中数据区域复制,回到「汇总」从第一行粘贴,连表头一起。
- 打开第二张表,这次只选数据行、不选表头,复制后粘到「汇总」最后一行数据的下面。
- 后面每张表都照第 4 步做,粘完核对一次总行数。
表多,或者每月都会新增一张,改用 Power Query,一次搭好以后点刷新就行:
- 把要合并的表放在同一个工作簿里,每张表结构尽量一致,第一行都是表头。
- 在「数据」选项卡里选「获取数据」,从文件导入当前这个工作簿。
- 弹出导航器窗口,勾选要合并的那几张表,点「转换数据」,进入 Power Query 编辑器。
- 选中其中一张表的查询,用「追加查询」,把这些查询追加成一个新查询。
- 检查结果,把多余的表头行、空行删掉,然后「关闭并上载」。
- 以后源表加了数据,在汇总表上右键「刷新」,结果自动更新。
表结构完全一样、又用新版本 Excel,可以直接用一句 VSTACK 公式把几段区域拼起来,缺点是源表增删要回头改公式里的区域。
几个坑
- Power Query 的追加按列名对齐,不按位置。两张表表头差一个字,比如一张写「日期」一张写「时间」,合并后会变成两列,各有一半是空的。
- 表头下夹着空行、小计行、合并单元格,合并后会原样带进来,行数对不上多半是它们。
- 手工粘贴最容易漏行,粘完别凭感觉,用总行数核对一遍,做法见下一节。
- 用公式引用别的工作表,工作表改名或删除后公式会变成错误值,合并前先确认表名不再改。
- Power Query 记的是文件路径,源文件被移动或者改名,刷新就失败,报错里会写找不到文件。
怎么验证
- 数行:每张源表的数据行数(不含表头)加起来,应该等于合并表的数据行数。
- 抽三行核对:从合并表随便挑三行,回源表搜同一个单号或日期,看数值是否一致,顺带能看出整列有没有错位。
- 查重复:对单号列做条件格式里的重复值标记,源表本来就有的重复会在这里暴露出来。
- 再刷新一次看行数,数字不变才说明查询是稳定的,不是碰巧对上。
常见问题
合并以后数字变成文本,求和是 0
多半是粘进来时单元格被设成了文本格式,或者 Power Query 里那一列还是文本类型。把列类型改成数值再刷新;手工粘的表选中整列,重新设成数值格式即可。
几十张表结构不一样,还能合并吗
能,但要先统一列名:把意思相同的列改成同一个表头再追加。实在没法统一的,就只取几张共有的列,其余列合并后手工补,硬合会把数据错位到别的列。
合并出来的表能不能直接做数据透视表
能,合并结果就是一张普通数据区域,选中它插入数据透视表即可。用 Power Query 的话,建议在查询里先把表头那一行提升为标题,出来的结果更规整。
一句话总结:两三张表手工粘贴、粘完数行数;表多或者每月新增就用 Power Query 追加、以后点刷新,前提是各表列名统一、表头下没有空行和小计行。