推荐使用Power Query合并多个工作表:点击【数据】→【从工作簿】导入当前文件,全选需合并的工作表,进入编辑器后追加查询,最后关闭并上载至新工作表。
☞☞☞☞点击夸克ai手把手教你,操作像呼吸一样简单!☜☜☜☜☜
如果您需要将Excel中多个工作表的数据整合到一个工作表中,但手动复制粘贴效率低下且易出错,则可以采用以下几种高效、可复用的操作方法。以下是解决此问题的步骤:
一、使用Power Query合并多个工作表
Power Query是Excel内置的数据获取与转换工具,适用于结构相似的多张表(如列名一致、数据格式统一),能自动识别并追加所有工作表内容,支持刷新更新。
1、在Excel中点击【数据】选项卡,选择【从工作簿】,浏览并选中当前Excel文件,点击【导入】。
2、在导航器窗口中,勾选【选择多个项目】,然后全选所有需合并的工作表名称,点击【加载】或【转换数据】。
3、进入Power Query编辑器后,选中左侧所有查询项,右键选择【追加查询】→【将查询追加为新查询】。
4、在新生成的合并查询中,点击【关闭并上载】,结果将自动写入新工作表。
二、使用SUMPRODUCT+INDIRECT函数组合实现动态跨表汇总
该方法适用于固定表名、列结构一致且表数量不多的场景,无需加载外部工具,通过公式实时引用各表指定单元格区域并汇总,适合轻量级汇总需求。
1、在目标表首行输入标题,例如A1输入“姓名”,B1输入“销售额”。
2、在A2单元格输入如下公式(假设工作表名为Sheet1、Sheet2、Sheet3,数据位于A2:B100):
=IFERROR(INDEX(INDIRECT("Sheet"&INT((ROW(A1)-1)/100)+1&"!A:A"),MOD(ROW(A1)-1,100)+2),"")
3、在B2单元格输入对应数值列公式:
=IFERROR(INDEX(INDIRECT("Sheet"&INT((ROW(A1)-1)/100)+1&"!B:B"),MOD(ROW(A1)-1,100)+2),"")
4、向下填充公式,直至所有数据行覆盖完毕,空白行将自动显示为空。
三、利用VBA宏一键合并同结构工作表
VBA脚本可批量读取当前工作簿内所有工作表(排除目标汇总表),按顺序将数据追加至指定汇总表,支持跳过标题行,执行速度快,适合重复性高频操作。
1、按Alt + F11打开VBA编辑器,点击【插入】→【模块】。
2、粘贴以下代码(假设汇总表名为“汇总”,且各源表首行为标题,数据从第2行开始):
Sub 合并多表()
Dim ws As Worksheet, destWs As Worksheet, lastRow As Long
Set destWs = ThisWorkbook.Sheets("汇总")
lastRow = destWs.Cells(destWs.Rows.Count, "A").End(xlUp).Row
For Each ws In ThisWorkbook.Sheets
If ws.Name "汇总" Then
ws.UsedRange.Offset(1, 0).Copy destWs.Cells(lastRow + 1, 1)
lastRow = destWs.Cells(destWs.Rows.Count, "A").End(xlUp).Row
End If
Next ws
End Sub
3、返回Excel界面,按Alt + F8调出宏列表,选中“合并多表”,点击【运行】。
四、借助Excel 365/2021新增的TOCOL函数横向压缩多表数据
TOCOL函数可将多个二维区域垂直堆叠为单列,配合BYROW、CHOOSE等函数可扩展为多列结构,适用于Excel 365及2021以上版本,无需辅助列与查询界面。
1、确保所有待合并表结构完全一致(相同列数、列序、列标题),并命名区域(如Sheet1!A1:C100命名为tbl1,Sheet2!A1:C100命名为tbl2)。
2、在汇总表A1单元格输入:=LET(a,TOCOL(CHOOSE({1,2},tbl1,tbl2),1),INDEX(a,SEQUENCE(ROWS(a)),{1,2,3}))
3、公式将自动输出三列完整数据,若需包含表来源标识,可在CHOOSE中嵌入常量数组添加来源列。










