多表合并有四种方法:一、power query自动堆叠同结构表;二、数据透视表“多重合并”动态汇总;三、sumifs函数跨表条件求和;四、vba批量合并同结构工作表。

如果您需要将多个Excel工作表中的数据整合到一张汇总表中,可能面临字段不一致、行数不同或格式混乱等问题。以下是实现多表合并的几种实用方法:
一、使用Power Query合并多个工作表
Power Query支持自动识别同结构工作表并堆叠数据,适用于列标题相同、数据类型一致的多张表格,且无需编写公式。
1、在Excel中点击【数据】选项卡,选择【从工作簿】,浏览并导入当前Excel文件。
2、在导航器窗口中,勾选所有需合并的工作表名称,取消勾选“启用隐私级别”提示框中的确认选项。
3、点击【转换数据】进入Power Query编辑器,选中左侧查询列表中任意一个表名,右键选择【追加查询】→【将查询追加为新查询】。
4、在弹出窗口中按住Ctrl键依次选择其余所有工作表查询,点击【确定】。
5、合并后的查询会显示全部记录,可点击【关闭并上载】直接生成新工作表。
二、利用数据透视表实现动态汇总
当各表结构统一但需按分类快速切换统计维度时,数据透视表可通过“多重合并计算区域”功能聚合多表数据,适合小规模手动更新场景。
1、在空白工作表中,点击【插入】→【数据透视表】→【多重合并计算区域】→【自定义】。
2、在向导第一步中选择【创建单页字段】,点击【下一步】。
3、第二步中点击【浏览】,逐个选定每张源表的数据区域(含标题行),每次添加后点击【添加】按钮。
4、全部添加完成后点击【完成】,新透视表将自动创建,并在行标签中出现“页字段”用于筛选来源表。
5、拖动字段至行、列、值区域即可生成交叉汇总,注意:该方式不支持刷新,新增表格需重新配置。
三、通过SUMIFS函数跨表汇总指定条件数据
当各表字段存在差异,但需按某一共同标识(如产品编号、日期)进行条件汇总时,SUMIFS可精准拉取多表数值并累加。
1、在汇总表首行输入统一标题,例如A1为“产品编号”,B1为“销售总额”。
2、在B2单元格输入公式:=SUMIFS(表1!B:B,表1!A:A,$A2)+SUMIFS(表2!B:B,表2!A:A,$A2)+SUMIFS(表3!B:B,表3!A:A,$A2)。
3、将公式向下填充至所有产品编号对应行。
4、若源表数量较多,可先用INDIRECT函数构建动态引用,例如:SUMIFS(INDIRECT("表"&ROW(1:1))&"!B:B",INDIRECT("表"&ROW(1:1))&"!A:A",$A2),再配合数组公式扩展。
四、借助VBA批量合并同结构工作表
VBA脚本能一次性读取当前工作簿内所有工作表(除汇总表外),按顺序堆叠数据并自动跳过空表,适合固定模板下的高频操作。
1、按Alt+F11打开VBA编辑器,插入新模块。
2、粘贴以下代码:
Sub MergeSheets()
Dim ws As Worksheet, destWs As Worksheet, lastRow As Long
Set destWs = ThisWorkbook.Sheets.Add
destWs.Name = "汇总表"
For Each ws In ThisWorkbook.Worksheets
If ws.Name "汇总表" Then
lastRow = destWs.Cells(destWs.Rows.Count, 1).End(xlUp).Row
ws.UsedRange.Copy destWs.Cells(lastRow + 1, 1)
End If
Next ws
End Sub
3、返回Excel界面,按Alt+F8运行宏,即生成含全部数据的“汇总表”。











