可采用四种方法整合多表数据:一、Power Query自动合并结构一致的工作表;二、SUMIFS函数跨表条件求和;三、三维引用对连续命名工作表相同单元格求和;四、VBA宏一键批量合并。

如果您需要将多个Excel工作表中的数据整合到一个汇总表中进行统一计算,则可能是由于各表结构相似但数据分散在不同工作表内。以下是实现多表数据合并与计算的具体操作步骤:
一、使用Power Query合并多个工作表
Power Query是Excel内置的数据获取与转换工具,适用于结构一致的多表自动合并,支持动态刷新与字段映射。
1、在Excel中打开包含多个待合并工作表的文件,确保各表首行均为列标题且列名完全相同。
2、点击【数据】选项卡,选择【来自工作簿】,浏览并选中当前文件,点击【导入】。
3、在导航器窗口中,勾选【选择多个项目】,逐一选中所有需合并的工作表名称,点击【加载】。
4、在Power Query编辑器中,点击【主页】→【追加查询】→【将查询追加为新查询】,选择全部已加载的表进行垂直合并。
5、删除不需要的列(如“源名称”列),点击【关闭并上载】,结果将自动写入新工作表。
二、使用SUMIFS函数跨表汇总计算
SUMIFS函数可在保持原表不动的前提下,按条件对多个工作表的指定区域进行加总,适用于有明确筛选维度的场景。
1、新建一个汇总工作表,在A2单元格输入第一个需统计的类别名称(如“产品A”)。
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),其中C列为数值列,A列为条件列。
3、将公式向右或向下拖拽填充,自动适配其他类别或指标项。
4、若工作表数量较多,可将表名存入数组,配合INDIRECT函数构建动态引用,但需注意INDIRECT不支持关闭工作簿中的引用。
三、使用三维引用快速求和
当多个工作表结构完全一致、且名称连续(如“1月”“2月”“3月”)时,三维引用可一次性对相同单元格区域跨表累加。
1、确认所有目标工作表按时间或逻辑顺序排列,且标签名连续无间隔(例如:1月、2月、3月位于工作表标签最左侧连续位置)。
2、在汇总表的D5单元格中输入公式:=SUM('1月:3月'!D5),表示对“1月”至“3月”所有工作表中D5单元格的值求和。
3、复制该公式至D5:G10区域,Excel会自动按相对引用调整行列,完成整块区域的跨表汇总。
4、若新增工作表插入在“1月”与“3月”之间,三维引用范围将自动包含该表;若插入在范围外,则需手动修改公式中的起止表名。
四、使用VBA宏批量合并工作表
VBA适用于重复性高、表结构固定且需一键执行的合并任务,可跳过手动选择环节,直接提取所有工作表数据到新表。
1、按Alt+F11打开VBA编辑器,插入新模块,粘贴以下代码:
Sub MergeSheets()
Dim ws As Worksheet, destWs As Worksheet, lastRow As Long
Set destWs = Worksheets.Add
destWs.Name = "合并结果"
For Each ws In Worksheets
If ws.Name destWs.Name Then
lastRow = destWs.Cells(destWs.Rows.Count, 1).End(xlUp).Row
ws.UsedRange.Offset(1, 0).Copy destWs.Cells(lastRow + 1, 1)
End If
Next ws
End Sub
2、关闭编辑器,返回Excel,按Alt+F8运行“MergeSheets”宏。
3、检查新生成的“合并结果”工作表,确认首行标题仅保留一次,其余数据自第二行起逐表追加。











