首页 > 软件教程 >Excel怎么把多张表格合并成一个汇总表 Excel数据透视表与PowerQuery多表联动合并技巧

Excel怎么把多张表格合并成一个汇总表 Excel数据透视表与PowerQuery多表联动合并技巧

来源:互联网 2026-04-08 16:01:06

多表合并有四种方法:一、Power Query自动堆叠同结构表;二、数据透视表“多重合并”动态汇总;三、SUMIFS函数跨表条件求和;四、VBA批量合并同结构工作表。 面对多个Excel工作表中分散的数据,你是否也头疼过如何将它们干净利落地整合到一张表里?字段不一致、行数不同、格式混乱,这些常见问题

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

Excel怎么把多张表格合并成一个汇总表 Excel数据透视表与PowerQuery多表联动合并技巧

面对多个Excel工作表中分散的数据,你是否也头疼过如何将它们干净利落地整合到一张表里?字段不一致、行数不同、格式混乱,这些常见问题确实棘手。别担心,下面这几种经过实践检验的方法,总有一款能解决你的难题。

长期稳定更新的攒劲资源: >>>点此立即查看<<<

一、使用Power Query合并多个工作表

对于列标题和数据类型都一致的多张表格,Power Query无疑是首选。它就像一位得力的数据管家,能自动识别并堆叠同结构的数据,整个过程完全不需要你手动编写任何公式。

具体操作其实很直观:首先,在Excel的【数据】选项卡下,点击【从工作簿】,选择并导入当前文件。接着,在导航器窗口里,勾选所有需要合并的工作表名称,顺手取消掉那个关于“启用隐私级别”的提示框确认选项。

关键一步来了:点击【转换数据】进入Power Query的编辑界面。在左侧找到查询列表,选中任意一个表名,右键选择【追加查询】→【将查询追加为新查询】。这时,会弹出一个窗口,只要按住Ctrl键,依次点选其余所有需要合并的工作表查询,最后点击【确定】就行了。

瞧,合并后的新查询已经包含了所有记录。最后,点击【关闭并上载】,一张全新的汇总工作表就会自动生成。

二、利用数据透视表实现动态汇总

如果你的各张表格结构统一,但又需要能灵活切换不同维度来查看统计结果,那么数据透视表的“多重合并计算区域”功能就派上用场了。这种方法特别适合数据量不大、且需要手动定期更新的场景。

操作路径是这样的:在一张空白工作表中,依次点击【插入】→【数据透视表】→【多重合并计算区域】→【自定义】。在向导的第一步,选择【创建单页字段】,然后点击【下一步】。

到了第二步,点击【浏览】,开始逐个添加源表的数据区域——记得要包含标题行。每选定一个区域,就点击一次【添加】按钮,把所有表都加进去。

全部添加完成后,点击【完成】,新的数据透视表就创建好了。你会发现行标签里多了一个“页字段”,用它就能轻松筛选数据是来自哪张源表。之后,像平常一样拖动字段到行、列、值区域,交叉汇总表立刻呈现。

不过,这里有个重要提醒:用这种方式生成的数据透视表不支持刷新操作。一旦源数据有新增表格,你得重新走一遍配置流程。

三、通过SUMIFS函数跨表汇总指定条件数据

当各个分表的字段不完全相同,但都拥有像“产品编号”、“日期”这样的共同标识时,该如何汇总?SUMIFS函数这时就能大显身手了,它能精准地从多张表中,按条件提取并累加数值。

操作方法很直接:先在汇总表的首行输入统一的标题,比如A1是“产品编号”,B1是“销售总额”。然后,在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)

接下来,将这个公式向下填充到所有产品编号对应的行,汇总就自动完成了。

如果源表数量非常多,一个加号一个加号地写公式显然太麻烦。这时可以借助INDIRECT函数来构建动态引用,例如使用这样的公式结构: SUMIFS(INDIRECT("表"&ROW(1:1))&"!B:B", INDIRECT("表"&ROW(1:1))&"!A:A", $A2),再结合数组公式进行扩展,就能实现智能化的批量汇总。

四、借助VBA批量合并同结构工作表

对于使用固定模板、且需要高频合并的场景,一段简短的VBA脚本堪称效率“核武器”。它能一键读取当前工作簿内所有指定的工作表(自动跳过汇总表本身),并按顺序将数据堆叠起来。

实现起来也不复杂:按下Alt+F11键打开VBA编辑器,插入一个新的模块。然后,把下面这段代码粘贴进去:

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

代码贴好后,回到Excel界面,按下Alt+F8,选择并运行这个名为“MergeSheets”的宏。一瞬间,一个包含所有数据的“汇总表”就诞生了。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。