推荐使用Power Query合并工作簿,适用于结构相似的多个Excel文件;其次可选VBA宏批量合并Sheet1,适合统一表名且首行为标题的场景;少量固定文件可用INDIRECT函数配合定义名称动态引用。

excel多文件如何合并成一个表格 多文件数据整合方法  第1张

如果您需要将多个Excel文件中的数据整合到一个工作表中,可能是由于数据分散在不同文件中导致分析困难。以下是实现多文件合并的多种方法:

一、使用Power Query合并工作簿

Power Query是Excel内置的数据连接与转换工具,适用于结构相似的多个Excel文件(如均含相同列标题),可自动识别并追加所有匹配工作表的数据。

1、在Excel中点击【数据】选项卡,选择【获取数据】→【从文件】→【从文件夹】。

2、浏览并选择包含所有待合并Excel文件的文件夹,点击【确定】。

3、在导航窗口中,取消勾选【Content】和【Date modified】等非数据列,仅保留【Name】和【Content】两列。

4、右键点击【Content】列标题,选择【转换为表】,确认包含标题。

5、展开【Content】列右侧的展开按钮,勾选所有需导入的列,取消勾选【使用原始列名作为前缀】。

6、点击【关闭并上载】,数据将自动合并至新工作表中。

二、通过VBA宏批量合并Sheet1

该方法适用于所有Excel文件均以“Sheet1”为统一工作表名,且首行为列标题的情况。VBA脚本可跳过空文件,自动追加数据,不依赖Power Query环境。

1、按Alt + F11打开VBA编辑器,插入新模块:点击【插入】→【模块】。

2、粘贴以下代码:

Sub MergeExcelFiles()

Dim Path$, File$, Wb As Workbook, Ws As Worksheet, DestWs As Worksheet

Set DestWs = ThisWorkbook.Sheets(1)

Path = "C:\待合并文件\" '请替换为实际路径,末尾必须有反斜杠

File = Dir(Path & "*.xlsx")

Do While File ""

If Not File = ThisWorkbook.Name Then

Set Wb = Workbooks.Open(Path & File)

On Error Resume Next

Set Ws = Wb.Sheets("Sheet1")

If Not Ws Is Nothing Then

If Ws.UsedRange.Rows.Count > 1 Then

Ws.UsedRange.Offset(1).Copy

DestWs.Cells(DestWs.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlValues

End If

End If

Wb.Close False

End If

File = Dir

Loop

Application.CutCopyMode = False

MsgBox "合并完成!"

3、修改代码中Path = "C:\待合并文件\"为您的实际文件夹路径。

4、按F5运行宏,所有符合命名规则的.xlsx文件中Sheet1的第二行起数据将追加至当前工作簿首张表。

三、利用Excel公式+定义名称动态引用

适用于少量固定文件(不超过20个)且各文件结构一致的场景。通过INDIRECT函数跨工作簿引用,配合定义名称规避重复路径输入,避免打开源文件即可汇总关键字段。

1、确保所有源Excel文件处于关闭状态,并保存在同一文件夹内,例如命名为data1.xlsx、data2.xlsx……

2、在目标工作表中,于A1单元格输入列标题(须与源文件首行完全一致)。

3、选中B2单元格,定义名称:点击【公式】→【定义名称】,名称填“SourcePath”,引用位置填:="C:\同一文件夹\"(含末尾反斜杠)。

4、在B2输入公式:=INDIRECT("'["&SourcePath&"data1.xlsx]Sheet1'!B2"),回车后拖拽填充至所需行列。

5、对data2.xlsx至dataN.xlsx,分别在后续行或列中重复步骤4,仅修改公式中文件名部分。

6、使用筛选或排序功能将各来源数据归并观察,手动调整顺序或去重。