地址 CSV 的空白、NULL、N/A 不一樣:匯入後怎麼避免被當成地址文字?

空白欄、字串 NULL、N/A、破折號與「未提供」不是同一件事。它們可能分別代表沒有填、系統匯出空值、此欄不適用或上游刻意遮蔽。進地址工具前先把這些值分流,保留原始字串與缺值原因;不要讓工具把 NULL 當成路名的一部分。
先做缺值字典
用虛構資料說明:
| 原始地址欄 | 建議狀態 | 能否自動補地址 |
|---|---|---|
| 完全空白 | 無法確認:未提供 | 否 |
| NULL | 無法確認:系統空值候選 | 否 |
| N/A | 無法確認:語意待查 | 否 |
| 不適用 | 無法確認或合法不適用 | 否 |
| — | 無法確認:占位符候選 | 否 |
| 範例市學習路8號 | 進入格式處理 | 仍需判斷 |
同一個 N/A 在配送名單可能是缺資料,在「海外地址第二行」可能代表欄位不適用。缺值字典必須配合欄位與業務情境,不能全公司只用一張無條件取代表。
匯入和清理順序
- 保留 raw_address,不在原欄執行全域取代。
- 新增 missing_marker 欄,記錄空白、NULL、N/A、破折號等原始類型。
- 向來源系統確認每個標記的定義;查不到就標「未確認」。
- 只有確定代表空值的標記,才在工作欄轉為真正空白。
- 「不適用」與「未知」要分開,因為後續補件責任不同。
- 空白列不送入地址標準化,避免產生看似成功的空結果。
- 交付時統計各缺值原因,不把它們排除在總筆數之外。
RFC 4180 允許標題列與各種欄位內容,但不替業務系統定義 NULL 或 N/A 的語意。真正定義要回到來源文件與欄位負責人;沒有定義時,任何轉換都只是猜測。
可辨識為地址的列再送入批次地址整理工具;缺行政區或門牌的地址可參考找出不完整地址。若多筆 NULL 被誤判成重複地址,依重複地址名單清理的原則排除缺值列,不能合併成一個人。把缺值處理乾淨不表示其餘地址存在,格式結果仍須依確定、可能、無法確認、錯誤分流。
若空值來自既有清理流程,可回看Excel 批次地址整理指南的原始欄與狀態欄做法,避免把 NA 當成地址文字。
先問來源系統怎麼輸出缺值
有些系統用空欄表示資料庫 NULL,有些把字串 NULL 原樣輸出,也有表單把 N/A 當使用者輸入。必須查來源規格或用已知案例讀回,不能只憑字面建立全公司通用規則。同一檔案若同時出現空欄、NULL 與 N/A,更要保留原值並請資料擁有者解釋。
建立 missing_value_map 時,記錄 source_system、source_value、meaning、applicable_field、confirmed_by 與日期。例如客服系統的「未提供」可能代表尚未詢問,物流匯出檔的空欄則可能代表該列不是宅配。規則只套用到已確認來源,不跨系統複製。
匯出後再做一次往返測試
準備一列真正空欄、一列字串 NULL、一列 N/A、一列「不適用」和一列正常地址,輸出 CSV 再以接收端匯入。讀回後檢查空欄沒有變成字串、占位符沒有被地址工具處理、缺值原因仍可區分。若目標系統只有單一空值,就在匯入前另存 missing_reason,避免語意永久消失。
資料後來補齊時,新地址寫進候選或確認欄,原始占位符與補件紀錄仍保留。若本次用途不需要地址,不適用列不應進待補清單。這樣才能同時避免誤催、漏件與把占位文字當成真地址。
統計時不要把所有缺值合成一類
品質報表至少分開「業務上不適用」「待補」「來源遺失」「拒絕提供」與「原因未知」。只有待補和來源遺失需要安排補件;不適用列不應拉低地址完整率。若管理報表必須有總缺值數,也要能下鑽到原因,避免用單一紅色指標誤導。