Excel多表合并有四种方法:一、Power Query自动追加结构相似工作表;二、SUMIFS跨表按条件汇总数值;三、VBA宏一键合并同结构数据并去重标题;四、TOCOL函数堆叠固定区域数据并标记来源表。

如果您需要将Excel工作簿中多个工作表的数据统一整理到一张表中,可能是为了统计分析、报表生成或数据清洗。以下是实现多表合并的多种方法:
一、使用Power Query合并多个工作表
Power Query是Excel内置的数据整合工具,适用于结构相似的多个工作表(如列名一致、数据格式相同),可自动识别并追加所有工作表内容。
1、在Excel中,点击【数据】选项卡,选择【来自工作簿】,浏览并导入当前工作簿文件。
2、在导航器窗口中,勾选【合并并加载到…】,点击【确定】。
3、在弹出的“合并”对话框中,选择任意一个工作表作为示例表,勾选【使用第一个工作表作为示例】,再勾选【合并所有工作表】。
4、确认列映射关系无误后,点击【确定】,Power Query将自动创建合并查询,并加载结果至新工作表。
5、如需更新数据,右键点击结果表,选择【刷新】即可同步新增工作表内容。
二、使用SUMIFS函数跨表汇总指定条件数据
当各工作表结构一致但只需按特定条件(如部门、日期、产品)汇总数值时,SUMIFS可跨表引用并累加符合条件的单元格。
1、在目标汇总表中,先列出所有需汇总的条件项(例如A2单元格为“销售部”)。
2、在对应数值列输入公式:=SUMIFS(表1!C:C,表1!B:B,A2)+SUMIFS(表2!C:C,表2!B:B,A2)+SUMIFS(表3!C:C,表3!B:B,A2)。
3、将公式向下填充,即可对每个条件生成对应汇总值。
4、若工作表数量较多,可配合名称管理器定义动态表名范围,提升公式可维护性。
三、使用VBA宏一键合并同结构工作表
VBA脚本可批量读取当前工作簿内所有工作表(排除汇总表自身),按顺序将数据追加至新建的工作表中,适合重复性高、表数较多的场景。
1、按
2、粘贴以下代码:
Sub 合并工作表()
Dim ws As Worksheet, destWs As Worksheet, lastRow As Long, nextRow As Long
Set destWs = Worksheets.Add
destWs.Name = "汇总"
nextRow = 1
For Each ws In ThisWorkbook.Worksheets
If ws.Name destWs.Name Then
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
If nextRow = 1 And lastRow >= 1 Then ws.Rows(1).Copy destWs.Rows(1): nextRow = 2
If lastRow > 1 Then ws.Range("A2:" & "IV" & lastRow).Copy destWs.Cells(nextRow, 1)
nextRow = destWs.Cells(destWs.Rows.Count, 1).End(xlUp).Row + 1
End If
Next ws
End Sub
3、关闭编辑器,返回Excel,在【开发工具】选项卡中点击【宏】,运行“合并工作表”。
4、执行后将自动生成名为“汇总”的新工作表,包含所有源表数据(首行标题仅保留一次)。
四、使用Excel 365/2021新增的TOCOL函数横向转纵向合并
TOCOL函数可将多个独立区域(如各表A1:C10)一次性堆叠为单列或多列数组,配合INDEX与SEQUENCE可构建结构化汇总表,适用于固定区域且表数有限的场景。
1、在空白工作表中,确保各工作表数据区域完全对齐(例如均为A1:C10)。
2、在汇总表A1单元格输入公式:=TOCOL(表1!A1:C10&表2!A1:C10&表3!A1:C10,1)。
3、在B1单元格输入:=INDEX({表1;表2;表3},INT((ROW(A1)-1)/ROWS(表1!A:A))+1),用于标记来源表名。
4、选中A1:B1区域,按Ctrl+Shift+Enter(旧版Excel)或直接回车(动态数组版本),生成堆叠结果。
5、复制结果区域,使用【选择性粘贴→数值】固化数据,避免公式依赖异常。










