可采用power query、sumifs函数或vba宏三种结构化方法自动合并excel多工作表数据:power query适用于同结构工作表堆叠;sumifs支持跨表条件求和;vba宏可一键追加数据至新汇总表。

如果您需要将Excel中多个工作表的数据统一汇总到一个工作表中,但手动复制粘贴效率低且易出错,则可通过结构化方法实现自动批量合并。以下是解决此问题的步骤:
一、使用Power Query合并同类结构工作表
Power Query是Excel内置的数据整合工具,适用于各工作表字段名称、列顺序和数据类型完全一致的情形,能自动识别并堆叠所有匹配工作表的数据。
1、在任意工作表中,点击【数据】选项卡,选择【来自工作簿】,浏览并导入当前Excel文件本身。
2、在导航器窗口中,取消勾选【启用隐私级别】提示,勾选全部需合并的工作表名称(可按住Ctrl多选),点击【转换数据】。
3、进入Power Query编辑器后,选中左侧查询列表中第一个工作表名,右键选择【参考】,新建一个空白查询。
4、在新查询中,点击【主页】→【高级编辑器】,将原有代码替换为以下内容(保留引号内工作表名列表):
= Table.Combine({Sheet1, Sheet2, Sheet3}),其中Sheet1、Sheet2、Sheet3需替换为实际工作表名。
5、点击【完成】,结果将加载至新工作表,标题行仅保留一次,数据垂直堆叠无重复。
二、利用SUMIFS函数跨表汇总指定条件数据
当各工作表结构相似但需按特定条件(如部门、日期、产品)分类加总时,SUMIFS可跨多个工作表对同一单元格区域进行条件求和,无需预先整理原始数据。
1、在目标汇总表的首行输入字段标题,例如A1输入“产品名称”,B1输入“销售总额”。
2、在B2单元格输入公式:=SUMIFS(销售表1!C:C,销售表1!A:A,A2)+SUMIFS(销售表2!C:C,销售表2!A:A,A2)+SUMIFS(销售表3!C:C,销售表3!A:A,A2),其中“销售表1”“销售表2”等为实际工作表名,“C:C”为数值列,“A:A”为条件列,“A2”为当前匹配的产品名称。
3、按Enter确认后,拖拽B2单元格右下角填充柄向下复制公式,自动适配每一行的产品名称。
4、若新增工作表,需手动在公式中添加对应SUMIFS项,并确保各表中条件列与数值列位置完全一致。
三、通过VBA宏一键合并同结构工作表
VBA脚本适用于固定格式的多工作表批量追加,运行后自动生成新工作表“汇总”,并将除“汇总”外所有工作表的数据(跳过标题行)依次粘贴至该表底部。
1、按Alt+F11打开VBA编辑器,点击【插入】→【模块】,粘贴以下代码:
Sub MergeSheets()
Dim ws As Worksheet, destWs As Worksheet
Set destWs = Worksheets.Add(After:=Worksheets(Worksheets.Count))
destWs.Name = "汇总"
For Each ws In Worksheets
If ws.Name "汇总" Then
ws.UsedRange.Offset(1).Copy Destination:=destWs.Cells(destWs.Rows.Count, 1).End(xlUp).Offset(1)
End If
Next ws
End Sub
2、关闭编辑器,返回Excel,按Alt+F8调出宏列表,选中“MergeSheets”,点击【运行】。
3、检查生成的“汇总”工作表:首行为空,第二行起为各工作表第二行开始的数据;如需保留首行标题,需将Offset(1)改为Offset(0),并在首次粘贴前手动写入标题行。







