最新

Excel 怎么合并多个工作表

几十个工作表要汇总成一张,复制粘贴容易漏行也容易串行。三种做法从少到多、从手工到自动,附带行数核对和常见踩坑。

每个月一张工作表,年底要汇总成一张总表。表少时复制粘贴就行;表多或者以后还会新增,就得用能刷新的办法,不然下个月还得从头再来。

入口在哪

三条路,按表的数量和以后会不会再增加来选:

  • 手工复制粘贴:不需要找入口,新建一个空白工作表就能开始。
  • Power Query 追加:在「数据」选项卡里找「获取数据」这一组,从里面选从文件、从工作簿导入。不同 Excel 版本这一组的图标和文字略有区别,找不到就在「数据」选项卡里从左往右看,一般靠左。
  • VSTACK 函数:只有较新版本的 Excel 才有,直接在单元格里写公式;老版本输入后会提示名称无效。

另有一个老办法叫多重合并计算数据区域,入口在新版 Excel 里被收起来了,普通汇总用不上,这里不展开。

具体步骤

先看手工的办法。两三张表、以后不再增加,用它最省事:

  1. 新建工作表,命名成「汇总」。
  2. 打开第一张表,选中数据区域复制,回到「汇总」从第一行粘贴,连表头一起。
  3. 打开第二张表,这次只选数据行、不选表头,复制后粘到「汇总」最后一行数据的下面。
  4. 后面每张表都照第 4 步做,粘完核对一次总行数。

表多,或者每月都会新增一张,改用 Power Query,一次搭好以后点刷新就行:

  1. 把要合并的表放在同一个工作簿里,每张表结构尽量一致,第一行都是表头。
  2. 在「数据」选项卡里选「获取数据」,从文件导入当前这个工作簿。
  3. 弹出导航器窗口,勾选要合并的那几张表,点「转换数据」,进入 Power Query 编辑器。
  4. 选中其中一张表的查询,用「追加查询」,把这些查询追加成一个新查询。
  5. 检查结果,把多余的表头行、空行删掉,然后「关闭并上载」。
  6. 以后源表加了数据,在汇总表上右键「刷新」,结果自动更新。

表结构完全一样、又用新版本 Excel,可以直接用一句 VSTACK 公式把几段区域拼起来,缺点是源表增删要回头改公式里的区域。

几个坑

  • Power Query 的追加按列名对齐,不按位置。两张表表头差一个字,比如一张写「日期」一张写「时间」,合并后会变成两列,各有一半是空的。
  • 表头下夹着空行、小计行、合并单元格,合并后会原样带进来,行数对不上多半是它们。
  • 手工粘贴最容易漏行,粘完别凭感觉,用总行数核对一遍,做法见下一节。
  • 用公式引用别的工作表,工作表改名或删除后公式会变成错误值,合并前先确认表名不再改。
  • Power Query 记的是文件路径,源文件被移动或者改名,刷新就失败,报错里会写找不到文件。

怎么验证

  1. 数行:每张源表的数据行数(不含表头)加起来,应该等于合并表的数据行数。
  2. 抽三行核对:从合并表随便挑三行,回源表搜同一个单号或日期,看数值是否一致,顺带能看出整列有没有错位。
  3. 查重复:对单号列做条件格式里的重复值标记,源表本来就有的重复会在这里暴露出来。
  4. 再刷新一次看行数,数字不变才说明查询是稳定的,不是碰巧对上。

常见问题

合并以后数字变成文本,求和是 0

多半是粘进来时单元格被设成了文本格式,或者 Power Query 里那一列还是文本类型。把列类型改成数值再刷新;手工粘的表选中整列,重新设成数值格式即可。

几十张表结构不一样,还能合并吗

能,但要先统一列名:把意思相同的列改成同一个表头再追加。实在没法统一的,就只取几张共有的列,其余列合并后手工补,硬合会把数据错位到别的列。

合并出来的表能不能直接做数据透视表

能,合并结果就是一张普通数据区域,选中它插入数据透视表即可。用 Power Query 的话,建议在查询里先把表头那一行提升为标题,出来的结果更规整。

一句话总结:两三张表手工粘贴、粘完数行数;表多或者每月新增就用 Power Query 追加、以后点刷新,前提是各表列名统一、表头下没有空行和小计行。