每月一個地址 Excel,怎麼用 Power Query 合併成同一張表?

同欄位的月檔可以用 Power Query 從資料夾合併,但不要一開始就按「合併並載入」。先選一份結構正常的範例檔,檢查欄名、資料型別、工作表名稱與空白列,再把來源檔名保留成欄位。若十二份檔案不是同一結構,應先分組處理,不能硬湊成一張表。
合併前先做資料夾清單
假設資料夾有 2026-01.xlsx 到 2026-12.xlsx,每份應有 customer_id、raw_address、updated_at。另外出現「欄位說明.xlsx」或備份檔「2026-03-old.xlsx」時,必須排除;Power Query 會讀取資料夾與子資料夾中的檔案,不能只靠肉眼認為它只會抓月檔。
| 檢查項目 | 可合併 | 要先停下 |
|---|---|---|
| 欄名 | 三欄名稱與用途相同 | 有的叫 address、有的拆成五欄 |
| 地址型別 | 文字 | 被辨識成數字、日期或錯誤 |
| ID | 每列可追查 | 空白或同一月重複 |
| 來源 | 檔名可保留 | 看不出資料來自哪個月份 |
Power Query 操作路徑
- 把正式要合併的檔案複製到乾淨資料夾,原始檔另行保存。
- 在新活頁簿選「資料 → 取得資料 → 從檔案 → 從資料夾」。
- 在檔案清單先依副檔名與名稱過濾,排除暫存檔、說明檔與舊版。
- 選「合併並轉換資料」,在範例檔視窗確認正確工作表或表格。
- 把地址與 ID 指定成文字,不讓門牌片段、郵遞區號或長 ID 自動轉型。
- 保留 Source.Name,另新增來源月份;遇到錯誤不要選「略過錯誤檔」就交差,應輸出錯誤檔名清單。
- 載入前比對各檔列數總和、合併列數與唯一「來源檔名+customer_id」數量。
虛構例子中,1 月 100 列、2 月 120 列、3 月 90 列,理論合併為 310 列。如果結果只有 309 列,先查看是否範例檔錯把第一筆地址當成標題;如果有 400 列,可能連備份檔也被抓進來。
合併後才開始地址處理
來源資料先保持 raw_address 不變,另複製到整理候選欄,再分批送入批次地址整理工具。同一客戶跨月地址不同時,不要單憑較新的月份覆蓋舊值;先依Excel 新舊地址名單比對確認資料 ID 與變更來源。欄位配置與人工覆核分流可看Excel 地址批次整理指南。
Power Query 的「轉換成功」只代表檔案被讀入並套用步驟,不表示地址存在、正確或仍有效。缺欄、來源不明與地址衝突列應留在人工覆核清單,不要在合併過程自動補值。
月檔改版時不要靜默補空白
假設一月至六月使用 raw_address,七月改成 delivery_address,若查詢只抓舊欄名,後半年可能整欄變空白。應建立欄位結構檢查,列出每個檔案的工作表、欄名、型別與列數;不符合預期的檔案先進例外清單,不讓整批表面上成功載入。
欄位新增也要判斷用途。例如八月多了 address_note,不代表可以自動拼進地址欄。先更新資料字典和轉換步驟,再用少量檔案測試。來源檔名與原始列號要一路保留,日後才能找到是哪個月、哪一列出錯。
重新整理後的勾稽
按 source_file 統計輸入與輸出筆數,確認沒有備份檔重複、隱藏檔混入或子資料夾漏讀。再檢查 customer_id 唯一性、空白地址比例和最早最晚日期。若同一客戶跨月出現不同地址,保留為多筆歷史,不由 Power Query 自動選最新。
正式發佈前關閉資料夾中不應讀取的檔案,重新整理一次並保存查詢版本。Power Query 能重複轉換與合併,不能證明每月資料有效,也不能替你決定哪筆地址適用本次寄件。
不要讓查詢直接覆蓋人工結論
Power Query 的輸出應和人工覆核表分開,以 record_id 關聯。重新整理可能重建整張輸出表,若人在同一表手改狀態,修改可能消失或對錯列。將人工決定保存在獨立表,更新後再做一對一合併並檢查未匹配 ID。