客服、訂單、會員三份地址名單怎麼合併?來源欄先留著再清理

三份名單的第一步是「接在一起」,不是「把同一客戶壓成一列」。先把客服、訂單、會員資料轉成共同欄位,增加 source_system、source_record_id、captured_at,再 Append 成長表;之後才按穩定 customer_id 分組比較。若一開始就用會員地址覆蓋訂單地址,會失去這次寄件究竟採用哪個來源的線索。
長表範例
| customer_id | source | captured_at | raw_address | purpose |
|---|---|---|---|---|
| C001 | member | 2026-07-01 | 範例市學習路8號 | 會員聯絡 |
| C001 | order | 2026-09-20 | 範例市和平路12號 | 本次收件 |
| C001 | support | 2026-09-21 | 範例市和平路12號3樓 | 客服補充 |
這三列不能只按日期選最後一筆:客服補充可能只針對單一訂單,會員地址則可能仍是長期聯絡地址。先確認本次用途,再決定要送哪一筆;其他來源保留,不寫成「錯誤」。
合併與判讀
- 分別保存三份原始檔與欄位說明。
- 建立共同欄位,但不要為湊格式刪掉來源特有資訊。
- 用 Power Query Append 接續資料列,保留來源欄。
- 以 customer_id 分組;沒有穩定 ID 的資料不可只靠地址合併。
- 同一客戶多個地址時,用地址比較工具標示差異。
- 新增 selected_for_purpose 與 decision_reason,記錄這次用途採用哪一列。
- 地址缺門牌或來源矛盾時,向客戶或資料負責人確認,狀態保持可能。
- 回寫時只更新有權限的目標系統,不讓一次寄件決定覆蓋所有來源。
Power Query 的 Merge 和 Append 用途不同:Append 是把列接續,Merge 是依共同欄位連接。兩者都無法自行判斷地址新舊、用途或真實性。
各來源地址若先要做格式候選,可分別送入批次地址整理工具,但 raw_address 不能被覆蓋;整批欄位與人工覆核見Excel 地址批次整理指南。格式相同只表示文字可能一致,不代表三個系統記錄的是同一用途,也不證明地址存在。
Append 之後先做三個勾稽
第一,按 source_system 對照合併前筆數,確認每個來源都完整進入;第二,檢查 source_system 加 source_record_id 是否仍唯一,避免同一檔被讀兩次;第三,確認 customer_id 空白或格式不同的列沒有被錯接。Power Query 顯示載入成功,只代表查詢完成,不代表資料關聯正確。
例如客服檔用 C001、訂單檔用 0001、會員檔用電子郵件當識別碼,不能直接把看起來相近的值合併。應先取得受控的 ID 對照表,並保留 mapping_source 和 mapping_date。沒有對照的列留在 unmatched 組,不用姓名或地址猜 customer_id。
同一客戶多筆地址怎麼呈現
長表中每筆仍保留 purpose、captured_at 和來源。產生本次寄件候選時,另外建立 decision 表,寫 customer_id、selected_source_record_id、decision_scope、reason 與 reviewer;不要在長表刪除未採用地址。會員地址、帳務地址和本次訂單地址可以同時有效,只是用途不同。
重新整理查詢後,核對新增與移除來源檔的影響,避免備份檔被重複讀入。若某月檔欄位改名,讓查詢明確失敗或進例外清單,不要讓整欄變成空值仍繼續載入。最後抽查至少一位多來源客戶、一筆無 customer_id 資料和一筆衝突門牌,確認來源標籤一路保留到輸出。
來源檔被更正時如何更新
若客服後來提供修正版,不要刪掉舊來源列再載入。保留 source_record_id,新增 source_version、supersedes_id 和 active_flag;查詢可選目前有效版本,但歷史仍可追查。若修正版只改樓層,其他欄位也要逐項比對,不能假設整列都由新版取代。
分享合併表前再檢查來源標籤是否包含內部敏感資訊。外部合作方通常只需要本次採用值和任務 ID,不需要知道會員、客服與訂單系統的完整歷史。
決策表也要防止一對多誤接
selected_source_record_id 必須存在於同一 customer_id 的來源集合中;若一個來源 ID 被選給兩位客戶,立即阻擋。可在輸出前做關聯完整性檢查,列出孤兒決策、重複來源與沒有有效候選的客戶。筆數相符仍可能接錯人,必須檢查關係本身。