微軟 excel 教學
多個 Excel 檔合併成一個檔案:Power Query、VBA、CONSOLIDATE 三種方法完整教學(2026)
文章目錄
將多個 Excel 檔案合併成一個檔案,最有效率的方式是使用 Excel 內建的 Power Query(取得與轉換)功能,從資料夾一次匯入所有檔案並自動合併。不論你手上有 10 份還是 100 份 Excel 檔案,都不需要逐一複製貼上。這篇教學涵蓋 Power Query、VBA 巨集、CONSOLIDATE 函數三種主流方法,搭配實際操作步驟與比較表,幫助你根據自己的情境選出最適合的合併方式。
三種合併多個 Excel 檔案的方法比較
根據檔案數量、格式一致性與自動化需求,合併 Excel 檔案主要有三種方法:Power Query、VBA 巨集、CONSOLIDATE 函數。以下表格整理各方法的適用場景與優缺點,方便你快速選擇。
| 比較項目 | Power Query(推薦) | VBA 巨集 | CONSOLIDATE 函數 |
|---|---|---|---|
| 適用 Excel 版本 | Excel 2016 以上內建;2010/2013 需另裝增益集 | 所有版本 | 所有版本 |
| 適合檔案數量 | 10~數百份 | 不限 | 2~10 份 |
| 需要寫程式嗎 | 不需要,全圖形介面操作 | 需要撰寫 VBA 程式碼 | 不需要,但設定步驟較多 |
| 能否自動更新 | 可以,點選「重新整理」即可載入新資料 | 需重新執行巨集 | 需手動重新設定範圍 |
| 處理欄位不一致 | 自動比對欄位名稱,可手動調整 | 需在程式碼中處理 | 僅支援相同結構 |
| 學習難度 | 低 | 高 | 中 |
方法一:Power Query 從資料夾合併(最推薦)
Power Query(取得與轉換,英文全稱 Get & Transform)是 Excel 2016 以上版本內建的資料處理引擎,可以一鍵從整個資料夾匯入並合併所有 Excel 檔案。這是 Microsoft 官方推薦的合併方式,不需要寫任何程式碼。
操作步驟如下:
- 準備資料夾:將所有要合併的 Excel 檔案放進同一個資料夾。確保每份檔案的欄位結構相同(欄位名稱一致、資料類型一致)。
- 開啟 Excel,點選「資料」索引標籤:在功能區找到「取得資料」按鈕,選擇「從檔案」>「從資料夾」。
- 選取資料夾路徑:在彈出的「瀏覽」對話框中,選擇存放檔案的資料夾,點選「確定」。
- 預覽檔案清單:Excel 會列出資料夾內所有檔案。確認清單無誤後,點選「合併」>「合併並載入」。
- 選擇範例檔案與工作表:在「合併檔案」對話框中,從「範例檔案」下拉選單選取一份檔案作為結構範本,並選擇要匯入的工作表名稱,點選「確定」。
- 完成合併:Power Query 會自動將所有檔案的資料合併到一張新工作表中。日後新增檔案到同一資料夾,只需點選「資料」>「全部重新整理」即可更新。
實戰經驗:我在處理每月 50 多份部門銷售報表時,用 Power Query 從資料夾合併,第一次設定約花 3 分鐘,之後每月只需把新檔案丟進資料夾、按一下「重新整理」就完成,比過去逐檔複製貼上節省超過 90% 的時間。唯一要注意的是,每份檔案的欄位名稱必須完全一致,否則 Power Query 會產生多餘的欄位。
方法二:VBA 巨集自動合併多個 Excel 檔案
VBA(Visual Basic for Applications)巨集適合需要高度客製化的合併情境,例如只合併特定工作表、跳過標題列、或依條件篩選資料。以下提供一段可直接使用的 VBA 程式碼範例。
操作步驟:
- 開啟 VBA 編輯器:在 Excel 中按下
Alt + F11開啟 VBA 編輯器。 - 插入新模組:在左側專案視窗中,對你的活頁簿按右鍵,選擇「插入」>「模組」。
- 貼上以下程式碼:
Sub MergeExcelFiles()
Dim FolderPath As String
Dim FileName As String
Dim wb As Workbook
Dim ws As Worksheet
Dim DestRow As Long
' 設定資料夾路徑(請修改為你的路徑)
FolderPath = "C:\你的資料夾路徑\"
FileName = Dir(FolderPath & "*.xlsx")
DestRow = 2 ' 從第 2 列開始貼上(第 1 列保留標題)
Application.ScreenUpdating = False
Do While FileName <> ""
Set wb = Workbooks.Open(FolderPath & FileName)
Set ws = wb.Sheets(1)
' 複製資料(排除標題列)
Dim LastRow As Long
LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
If LastRow > 1 Then
ws.Range("A2:A" & LastRow).EntireRow.Copy _
ThisWorkbook.Sheets(1).Cells(DestRow, 1)
DestRow = DestRow + LastRow - 1
End If
wb.Close SaveChanges:=False
FileName = Dir()
Loop
Application.ScreenUpdating = True
MsgBox "合併完成!共匯入 " & DestRow - 2 & " 列資料。"
End Sub
- 修改資料夾路徑:將程式碼中的
C:\你的資料夾路徑\改成你實際存放檔案的路徑。 - 執行巨集:按下
F5或點選「執行」按鈕,VBA 會自動開啟資料夾中的每個 .xlsx 檔案,將資料複製到當前活頁簿的第一個工作表中。
方法三:CONSOLIDATE 函數合併少量檔案
CONSOLIDATE(合併彙算)是 Excel 內建功能,適合合併 2~10 份結構相同的 Excel 檔案,不需要寫程式碼也不需要 Power Query。它的原理是將多個範圍的資料彙整到一個目標範圍中。
操作步驟:
- 開啟目標活頁簿:開啟你要放置合併結果的 Excel 檔案。
- 點選「資料」索引標籤中的「合併彙算」:在功能區找到「合併彙算」按鈕並點選。
- 選擇函數:在「函數」下拉選單中選擇「加總」(或依需求選擇「平均值」「計數」等)。
- 新增參照範圍:點選「瀏覽」開啟要合併的 Excel 檔案,選取資料範圍後點選「新增」。重複此步驟將所有檔案的範圍加入。
- 勾選標籤選項:如果檔案有列標籤(欄位名稱)或欄標籤,勾選「頂端列」或「最左欄」,讓 Excel 自動比對。
- 點選「確定」:Excel 會將所有參照範圍的資料合併彙算到目標工作表中。
合併前的檔案整理技巧
合併 Excel 檔案之前,先做好檔案整理可以大幅減少合併後的錯誤與重工。以下是實務上最常遇到的問題與對應解法。
- 統一欄位名稱:確認所有檔案的標題列完全一致。例如「銷售額」和「銷售金額」在 Power Query 中會被視為兩個不同欄位。建議在合併前先打開 2~3 份檔案比對。
- 統一資料格式:日期欄位需使用相同格式(如 YYYY/MM/DD),數字欄位避免混用文字格式。格式不一致會導致 Power Query 匯入後出現錯誤值。
- 移除空白列與多餘標題:部分系統匯出的 Excel 檔案會在頂部插入 1~2 列空白或額外標題。合併前先刪除這些列,或在 Power Query 編輯器中使用「移除頂端列」功能處理。
- 檔案命名規則:建議以統一格式命名(如
202603_北區銷售.xlsx),方便排序與識別。Power Query 會自動新增「Source.Name」欄位顯示來源檔名,有助於追蹤資料來源。
合併後處理重複資料與欄位不一致
合併多個 Excel 檔案後,最常見的問題是重複資料與欄位名稱不一致,需要在合併後進行清理。以下整理兩大問題的處理方式。
處理重複資料
- Excel 內建「移除重複項」:選取合併後的資料範圍,點選「資料」>「移除重複項」,勾選用來判斷重複的欄位,Excel 會自動刪除完全相同的列。
- Power Query 移除重複:在 Power Query 編輯器中,選取關鍵欄位後點選「常用」>「移除列」>「移除重複項目」。此方式的優點是下次重新整理時會自動執行去重。
處理欄位名稱不一致
- Power Query 重新命名欄位:在 Power Query 編輯器中,雙擊欄位標題即可重新命名。修改後的名稱會套用到所有匯入的檔案。
- 手動統一後重新匯入:如果欄位差異太大,建議先在各檔案中統一欄位名稱再執行合併,避免產生大量空欄位。
多個 Excel 檔合併常見問題 FAQ
以下整理 7 個最常被問到的 Excel 檔案合併問題,涵蓋版本相容性、錯誤排除與替代工具。
Power Query 支援哪些 Excel 版本?
Power Query 在 Excel 2016、Excel 2019、Excel 2021 及 Microsoft 365 中為內建功能,不需額外安裝。Excel 2010 與 2013 版本需到 Microsoft 官方網站下載免費的 Power Query 增益集後手動安裝啟用。安裝後在「資料」索引標籤中即可找到相關功能。
合併後資料列數不對怎麼辦?
列數不符通常有三個原因:(1)部分檔案的工作表名稱與範例檔案不同,導致 Power Query 略過該檔案;(2)檔案中有隱藏的空白列被計入;(3)資料夾中混入了非 Excel 格式的檔案。建議在 Power Query 編輯器中檢查「Source.Name」欄位,確認每份檔案都有被匯入。
可以合併不同格式的檔案嗎?例如 .xls 和 .xlsx 混合?
Power Query 支援同時匯入 .xls(舊版 Excel 格式)與 .xlsx(新版格式)的檔案,只要它們的欄位結構相同即可。不過建議盡量統一為 .xlsx 格式,因為 .xls 格式的單一工作表上限為 65,536 列,合併後可能遺失超出上限的資料。
合併大量檔案時 Excel 會當掉怎麼辦?
當檔案數量超過 200 份或單檔資料量很大時,Excel 可能會出現記憶體不足的情況。解決方式有:(1)分批合併,先將檔案分成多個子資料夾分批處理;(2)使用 64 位元版本的 Excel,可支援更大的記憶體;(3)在 Power Query 編輯器中先篩選掉不需要的欄位,減少載入的資料量。
如何合併不同工作表名稱的 Excel 檔案?
Power Query 預設會匯入與範例檔案中選定的工作表名稱相同的工作表。如果各檔案的工作表名稱不同,可在 Power Query 編輯器中修改「範例檔案」查詢,將工作表選取方式從「依名稱」改為「依索引」(例如固定取第一個工作表),這樣就不受工作表名稱影響。
合併後如何追蹤每筆資料來自哪個檔案?
Power Query 在合併資料夾時,會自動新增一個「Source.Name」欄位,記錄每筆資料的來源檔案名稱。你可以保留這個欄位作為追蹤依據。如果使用 VBA 合併,可以在程式碼中加入一行,將檔案名稱寫入指定欄位。
除了 Excel 內建功能,還有其他工具可以合併 Excel 檔案嗎?
有。Python 的 pandas 套件可以用幾行程式碼合併數百份 Excel 檔案,效能比 Excel 好很多,適合資料量超過 100 萬列的情況。Google Sheets 的 IMPORTRANGE 函數也能跨檔案匯入資料,但有 1,000 萬格的上限。此外,免費工具如 LibreOffice Calc 也支援類似 Power Query 的合併功能。
Excel 檔案合併實戰操作指引
以下是從準備到完成合併的完整操作流程,建議按順序執行,可以避免 90% 以上的常見錯誤。
- 建立專用資料夾:在電腦上新建一個資料夾(例如
D:\合併專案),將所有要合併的 Excel 檔案集中放入,不要混入其他檔案。 - 抽查 2~3 份檔案:隨機打開幾份檔案,確認欄位名稱、資料格式、起始列位置是否一致。不一致的部分先手動修正。
- 選擇合併方法:檔案數量 10 份以上選 Power Query;需要客製化處理選 VBA;10 份以下且結構完全相同選 CONSOLIDATE。
- 執行合併:依照上方對應方法的步驟操作。Power Query 使用者記得在「合併檔案」對話框中確認範例檔案與工作表名稱正確。
- 驗證合併結果:檢查合併後的總列數是否等於各檔案資料列數之和(扣除標題列)。若數字不符,回到 Power Query 編輯器檢查是否有檔案被略過。
- 清理資料:使用「移除重複項」功能清除重複資料,並檢查是否有空白列或格式錯誤。
- 儲存並設定自動更新:將活頁簿儲存為 .xlsx 格式。如果使用 Power Query,日後只需將新檔案放入同一資料夾,點選「資料」>「全部重新整理」即可自動更新合併結果。