可采用power query、函数组合或vba宏实现多表合并:一、power query自动追加结构相似工作表;二、sumproduct与indirect动态跨表求和;三、vba宏批量复制粘贴跳过标题行。

如果您需要将多个Excel工作表中的数据整合到一个工作表中,但手动复制粘贴效率低且易出错,则可能是由于缺乏对内置合并功能或结构化操作流程的掌握。以下是实现Excel多表数据快速合并的具体步骤:
一、使用Power Query合并多个工作表
Power Query是Excel内置的数据整合工具,适用于结构相似的多个工作表(如列名一致、数据格式统一),可自动识别并追加所有工作表内容,无需编写公式或代码。
1、在Excel中打开包含多个待合并工作表的文件。
2、依次点击【数据】选项卡 → 【从工作簿】→ 选择当前文件 → 点击【导入】。
3、在导航器窗口中,勾选【选择多个项目】,然后全选所有需合并的工作表名称 → 点击【加载】。
4、在Power Query编辑器中,点击【转换】选项卡 → 【将第一行用作标题】(若首行为列名)。
5、点击【主页】→ 【追加查询】→ 【将查询追加为新查询】→ 选择全部已加载的工作表查询 → 点击【确定】。
6、点击【关闭并上载】,合并后的数据将自动写入新工作表中。
二、使用SUMPRODUCT与INDIRECT函数组合引用多表求和汇总
当仅需对多个工作表中相同位置的数值型单元格进行汇总(如各月销售额总和),且工作表命名有规律时,可通过函数动态跨表引用,避免逐个输入表名。
1、确保所有待汇总工作表名称连续且无空格,例如“1月”“2月”“3月”。工作表名不能含特殊字符或空格,否则INDIRECT将返回#REF!错误。
2、在目标单元格中输入以下公式:
=SUMPRODUCT(SUMIF(INDIRECT("'"&{"1月","2月","3月"}&"'!A:A"),"产品A",INDIRECT("'"&{"1月","2月","3月"}&"'!B:B")))
3、按Enter确认,公式将自动计算三张表中A列等于“产品A”时对应B列数值的总和。
4、如需扩展至更多工作表,修改大括号内表名数组即可,例如{"1月","2月","3月","4月","5月"}。
三、通过VBA宏批量复制粘贴合并数据
VBA适用于结构固定但数量较多的工作表(如每日日报共100张),能全自动遍历所有工作表并将指定区域数据追加至汇总表末尾,跳过标题行。
1、按Alt+F11打开VBA编辑器,插入新模块:点击【插入】→ 【模块】。
2、粘贴以下代码:
Sub MergeSheets()
Dim ws As Worksheet, destWs As Worksheet
Set destWs = ThisWorkbook.Sheets("汇总")
For Each ws In ThisWorkbook.Sheets
If ws.Name "汇总" Then
ws.UsedRange.Offset(1, 0).Copy
destWs.Cells(destWs.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End If
Next ws
End Sub
3、在Excel中新增一张名为“汇总”的空白工作表。
4、返回Excel界面,按Alt+F8,选择“MergeSheets”,点击【运行】。
5、运行前请务必备份原文件,VBA操作不可撤销。










