AI 資料匯入檢查教學:Excel/CSV 上傳系統前必做的 15 個步驟
原內容日期:2026-09-23。本文為既有教學內容補發;範例依原文標示使用,實際權限與規則請以所屬組織核定資料為準。
Excel 打得開,不代表能安全匯入系統
很多資料事故都從一個看似正常的 Excel 開始。欄位整齊、沒有紅字、總筆數也對,按下匯入後卻出現重複主檔、代碼找不到、日期錯位,甚至原本資料被空白覆蓋。
原因通常不是 Excel 壞了,而是試算表只呈現畫面;系統匯入需要明確知道每個值的型別、身分、規則與動作。
AI 很適合協助做預檢,但正確問題不是「幫我清乾淨」,而是「找出哪些資料能依核准規則處理,哪些必須隔離與人工判斷」。
先定義匯入動作
新增、更新、Upsert、完整覆蓋、停用及刪除的風險完全不同。尤其是來源未出現的既有資料,究竟代表保留、停用,還是刪除,不能由 AI 猜測。
更新檔的空白也要逐欄定義。它可能代表不更新,也可能代表清除原值。沒有規則就直接寫入,是最容易造成大量資料消失的方式。
唯一鍵比名稱更重要
設備名稱、客戶名稱與產品名稱都可能重複或被拼錯。資料身分應由正式唯一鍵或複合鍵辨識。
前導零也是常見陷阱。設備編號 0007 一旦被 Excel 轉成數字 7,之後就很難判斷原本究竟有幾個零。編號、電話與郵遞區號通常應視為文字,而不是拿來計算的數值。
自動轉換一定要留原值
去除空白、統一全半形、轉換日期,看似都是安全清理,但每個自動修改仍要保留原始值、轉換值、規則及原因。
遇到 03/04/2026 這類日期,不知道是 3 月 4 日還是 4 月 3 日,就應隔離確認,而不是依使用者所在國家猜測。
代碼映射不能只靠相似度
來源寫「製造一部」,目標系統只有 MFG01 與 MFG10。AI 可以提出候選,但不能因名稱看起來接近就直接對應。錯誤部門代碼可能讓資料流向錯誤權限、報表或責任人。
四類分流比「全部修好」更安全
把資料分成可直接匯入、依核准規則修正後匯入、需要人工判斷及拒絕隔離。這種做法不追求表面上的百分之百成功,而是避免高風險資料被悄悄修成看似合法。
試跑必須看 Before/After
試跑不只顯示格式正確,還要告訴你預計新增、更新、未變更、略過與拒絕多少筆;哪些欄位會被清空;哪些狀態會改變。
正式匯入前,把來源列數、唯一鍵數、分類小計與控制總數保存下來。匯入後再用同一組指標對帳。
問題筆數不能隨便相加
17 筆前導零問題、8 筆未知代碼、6 筆日期歧義,不代表有 31 筆異常,因為同一列可能同時有三種問題。應用穩定的來源列編號去重後,才知道真正受影響筆數。
沒有回復,就先不要做大批匯入
正式執行前要能識別批次、備份既有資料、回復新增與更新,並確保重跑不會再次新增相同紀錄。如果做不到,就縮小批次、改用分段執行,或先補齊系統機制。
AI 可以幫你建立規則、找出異常與整理 Runbook,但不能只看樣本就保證整批安全,更不應直接操作正式系統。真正可靠的匯入,是每一筆變更有規則、每一批結果能對帳、每一次失敗都能安全回頭。
行動邀請:下次收到匯入檔,先問三件事:唯一鍵是什麼?空白代表什麼?來源沒有的既有資料要怎麼處理?
逐步操作
步驟 1:先保留原始檔,所有處理都在副本進行
保存:
- 原始檔案與收到時間
- 提供者與來源系統
- 檔名、大小及版本
- 原始列數與欄數
- 是否含標題列、空白列或合計列
不要直接在唯一一份原始 Excel 上刪欄、排序或另存,否則後續無法追查資料如何被改變。
步驟 2:定義匯入動作
先回答這批資料要做什麼:
- 只新增,不更新既有資料
- 只更新,找不到鍵值就拒絕
- Upsert:有則更新、無則新增
- 完整覆蓋
- 停用或刪除
- 測試試跑,不寫入
特別確認:來源沒有出現的既有資料,是保留、停用,還是刪除?沒有明確規則時,AI 不應替你選。
步驟 3:建立欄位字典與對照表
每個欄位列出:
- 來源欄位名
- 目標欄位名
- 定義
- 型別
- 最大長度
- 必填與允許空值
- 預設值
- 格式
- 單位
- 允許值或代碼表
- 轉換規則
名稱相似不代表意義相同,例如「更新日期」可能是資料內容日期,也可能是檔案處理時間。
步驟 4:做資料概況盤點
先統計整批資料:
- 總列數
- 完全空白列
- 各欄非空值數
- 唯一值數量
- 最小值、最大值及常見值
- 字串最短與最長長度
- 日期範圍
- 數值分布與異常值
- 每種狀態、部門或分類筆數
這一步是找問題,不是直接修正。
步驟 5:確認唯一鍵與資料身分
唯一鍵可能是:
- 員工編號
- 設備編號
- 客戶代碼
- 訂單號+項次
- 報名編號+票種
檢查:
- 是否為空
- 是否重複
- 大小寫是否視為相同
- 前後空白是否造成假差異
- 前導零是否重要
- 同一鍵的其他欄位是否衝突
若來源檔內重複,不要任意保留最後一筆;先確認哪一筆較新、誰有權決定,或將整組隔離。
步驟 6:統一型別與格式,但保留原值
常見處理:
- 編號一律視為文字
- 日期轉成明確的
YYYY-MM-DD - 日期時間加上時區
- 數值去除千分位與非數字符號
- 百分比確認是
5%、0.05還是5 - 全形/半形與空白正規化
- 電話與郵遞區號不當成一般數值
任何轉換都應保留 原始值、轉換值、規則 與 是否需人工確認。
步驟 7:檢查代碼與參照完整性
確認來源值是否存在於目標主檔:
- 部門代碼
- 角色與權限
- 產品分類
- 設備類型
- 客戶或供應商編號
- 狀態值
- 單位與幣別
不要讓 AI 依名稱相似度直接把 MFG-1 對應成 MFG01。應輸出候選映射,再由資料負責人確認。
步驟 8:設定欄位與跨欄位商業規則
欄位規則例如:
- 數量不得為負數
- Email 格式正確
- IP 位址格式有效
- 日期不得晚於今天
跨欄位規則例如:
- 停用狀態必須有停用日期
- 啟用設備必須有部門及負責人
- 結束日期不得早於開始日期
- 外幣金額必須有幣別
- 需要維護的設備必須有保養週期
商業規則必須來自正式文件或資料負責人,不能讓 AI 自創成正式限制。
步驟 9:明確定義空白與覆寫規則
更新檔中的空白可能代表:
- 不更新原值
- 清除原值
- 資料未知
- 不適用
- 檔案遺漏
每個欄位都要定義。否則一次 Upsert 就可能把正式資料大量清空。
步驟 10:把資料分成四個佇列
建議輸出:
- 可自動匯入:完全符合規則。
- 可規則修正後匯入:例如移除前後空白,且規則已核准。
- 需人工判斷:代碼歧義、重複衝突或合理性疑點。
- 拒絕/隔離:缺唯一鍵、違反硬性規則或含危險內容。
不要為了提高成功率,自動把所有問題列都「修到能匯」。
步驟 11:先在隔離環境試跑
試跑應回報:
- 預計新增筆數
- 預計更新筆數
- 預計略過筆數
- 預計拒絕筆數
- 會清除哪些欄位
- 會改變哪些狀態
- 是否出現唯一鍵或外鍵衝突
- 是否有資料截斷
最好輸出 Before/After 差異,不只顯示「驗證成功」。
步驟 12:設計控制總數與對帳
除了總列數,加入:
- 各部門或分類筆數
- 數量、金額、工時合計
- 啟用/停用狀態筆數
- 新增、更新、未變更及拒絕筆數
- 來源唯一鍵數量
- 目標系統匯入批次編號
若問題規則可能重疊,不能把各問題筆數直接相加後宣稱異常列總數;要以唯一列識別碼重新統計。
步驟 13:準備回復與安全重跑
匯入前確認:
- 有備份或可回復快照
- 能依批次識別本次新增與更新
- 可產生反向變更檔
- 匯入重跑不會重複新增
- 部分失敗時的提交方式
- 失敗門檻與停止條件
如果無法安全回復,應先縮小批次或改為分批執行。
步驟 14:建立正式執行 Runbook
寫出:
- 執行日期與維護窗口
- 執行人、核准者與監看人
- 輸入檔案與檢查碼
- 執行前檢查
- 試跑命令或操作
- 正式執行步驟
- 停止條件
- 回復步驟
- 通知與回報方式
不要把帳號密碼、權杖或正式連線資訊寫入 Runbook。
步驟 15:匯入後驗證與保留證據
完成後核對:
- 匯入批次狀態
- 新增/更新/略過/失敗筆數
- 控制總數與分類小計
- 隨機抽樣及高風險列
- 下游報表、介面及搜尋結果
- 拒絕資料是否有重新處理流程
- 原始檔、清理檔、結果檔與日誌的保存位置
匯入成功不是流程終點;目標系統裡的資料正確、下游運作正常,才是完成。
可直接複製的完整提示詞
【角色】
你是一位資深資料品質分析師、系統移轉顧問與專案經理。你要協助我在 Excel/CSV 匯入系統前,建立可追溯的資料健康檢查、分流、試跑、對帳及回復計畫。你不直接操作正式系統,也不擅自修正有歧義的資料。
【任務】
請根據來源欄位、樣本資料、目標規格、代碼表與匯入規則:
1. 確認匯入目的:新增、更新、Upsert、覆蓋、停用、刪除或試跑。
2. 建立來源與目標欄位字典及轉換對照。
3. 盤點列數、空值、唯一值、型別、長度、日期及數值分布。
4. 檢查唯一鍵、重複、前導零、大小寫、空白與不可見字元。
5. 檢查代碼表、參照資料及外鍵是否存在。
6. 驗證欄位與跨欄位商業規則。
7. 找出空白覆寫、資料截斷、日期歧義、單位與編碼風險。
8. 將資料分成可匯入、規則修正、人工判斷及拒絕四類。
9. 設計試跑、Before/After 差異與控制總數對帳。
10. 產出回復、安全重跑、正式 Runbook 與匯入後驗證計畫。
【匯入基本資料】
- 匯入目的:[新增/更新/Upsert/完整覆蓋/停用/刪除/試跑]
- 業務目的:[這批資料要支援什麼工作]
- 來源檔案:[檔名、格式、版本、提供者、日期]
- 來源系統:[名稱或手工作業]
- 目標系統與環境:[測試/正式]
- 預計匯入時間:[YYYY-MM-DD HH:mm,時區]
- 資料負責人:[角色]
- 執行人/核准者:[角色]
- 可接受錯誤門檻:[例如任何失敗即停止;未知請填未知]
- 是否可部分成功:[是/否/未知]
- 備份與回復方式:[已知內容/未知]
【欄位規格格式】
每個欄位一列:
- 來源欄位:
- 目標欄位:
- 業務定義:
- 型別:文字/整數/小數/日期/日期時間/布林/代碼
- 最大長度/精度:
- 必填:是/否/條件式
- 空白意義:不更新/清除/未知/不適用/禁止
- 格式與時區:
- 單位:
- 允許值/代碼表:
- 轉換規則:
- 敏感等級:一般/內部/機密/個資
【鍵值與動作規則】
- 唯一鍵或複合鍵:[欄位]
- 大小寫是否敏感:
- 前導零是否保留:
- 重複資料處理:整組拒絕/人工選擇/其他正式規則
- 找到既有鍵值時:[更新哪些欄位]
- 找不到鍵值時:[新增/拒絕]
- 來源沒有出現的既有資料:[保留/停用/刪除/未知]
- 空白是否覆寫原值:[依欄位說明]
- 同批次重跑行為:[說明/未知]
【代碼與參照資料格式】
- 來源值:
- 目標代碼:
- 正式名稱:
- 生效日期:
- 失效日期:
- 是否已由資料負責人核准:
【商業規則格式】
- 規則編號:
- 規則說明:
- 適用條件:
- 違反時處理:拒絕/警告/人工確認
- 規則來源與核准者:
【資料輸入格式】
優先提供去識別後的 CSV 或 Markdown 表格,第一欄加入穩定的來源列編號 source_row_id。
[在這裡貼上表頭及代表性資料;若有全量統計,也一併提供]
【限制與判斷規則】
1. 不得只看少量樣本就宣稱全檔通過。
2. 不得虛構目標欄位、代碼、預設值、商業規則或匯入結果。
3. 編號、電話、郵遞區號及可能含前導零的值預設視為文字,除非正式規格另有定義。
4. 日期格式有歧義時不得自行猜測,例如 03/04/2026。
5. 不得依名稱相似度直接合併客戶、設備、部門或產品代碼。
6. 重複鍵內容衝突時不得擅自保留第一筆或最後一筆。
7. 所有自動轉換都要保留原值、轉換值、規則與原因。
8. 空白、0、N/A、null、未知與不適用必須分開。
9. 多項問題可能落在同一列時,以 source_row_id 去重後統計受影響列數。
10. 來源列總數、唯一鍵數、新增、更新、略過、拒絕及失敗要能對帳。
11. 未取得全量資料或實際執行結果時,只能輸出檢查計畫/疑點,不得宣稱匯入安全。
12. 不得提供或要求真實密碼、金鑰、權杖及正式資料庫連線。
13. 個資、客戶、薪資、醫療與機密資料應去識別並使用核准環境。
14. 正式匯入前需由資料負責人及系統負責人核准。
15. AI 建議的修正與 SQL/公式都必須先在副本或隔離環境驗證。
【輸出格式】
A. 30 秒摘要
- 資料是否具備試跑條件
- 最重要的三個風險
- 建議下一步
- 信心等級與限制
B. 資料概況
| 指標 | 結果 | 是否異常 | 說明 |
包含總列數、空白列、唯一鍵數、重複鍵組數、各欄空值與常見值。
C. 欄位對照與品質規則
| 來源欄位 | 目標欄位 | 型別/長度 | 必填/空白意義 | 轉換規則 | 驗證規則 | 風險 |
D. 問題清單
| source_row_id | 欄位 | 原始值 | 問題類型 | 影響 | 建議處理 | 是否需人工確認 |
E. 重複與衝突表
| 鍵值 | 涉及列 | 相同欄位 | 衝突欄位 | 建議隔離方式 | 決策人 |
F. 代碼與參照對照
| 來源值 | 候選目標值 | 狀態:已核准/不匹配/歧義/失效 | 依據 | 待確認人 |
G. 四類資料分流
| 類別 | 唯一列數 | 判定規則 | 輸出檔 | 後續動作 |
類別為:可匯入/規則修正後可匯入/人工判斷/拒絕隔離。
H. 試跑預期結果
| 動作 | 筆數或未知 | 主要欄位變更 | 風險 | 驗證方式 |
包含新增、更新、未變更、略過、拒絕、清空欄位與停用。
I. 控制總數與對帳表
| 控制項目 | 匯入前來源 | 試跑預期 | 匯入後目標 | 差異 | 可接受門檻 |
J. 停止條件與回復計畫
- 哪些錯誤立即停止
- 部分成功如何處理
- 如何識別本批次
- 如何回復新增與更新
- 重跑如何避免重複
K. 正式匯入 Runbook
依時間順序列出負責角色、步驟、證據、檢查點、通知與簽核;不包含密碼或連線秘密。
L. 可直接傳送的訊息
1. 給資料提供者:缺漏、格式與需修正事項。
2. 給系統負責人:試跑結果、風險與核准請求。
3. 給主管:影響、選項、最晚決策時間與建議。
M. 人工確認清單
只列會改變新增/更新/清除/停用/拒絕或回復判斷的問題,依優先順序排列。
【待分析資料】
[貼上欄位規格、去識別資料、代碼表、商業規則與既有資料摘要]
可替換欄位快速表
[匯入目的]:新增、更新、Upsert、覆蓋、停用或試跑[來源檔案]:檔名、格式、提供者與版本[目標系統與環境]:避免把測試規則誤套到正式環境[唯一鍵]:資料身分與防重複的核心[空白意義]:防止更新時誤清除原值[代碼表]:目標系統正式允許值[錯誤門檻]:何時停止整批作業[待分析資料]:去識別後的表格與規格
實際教學範例
情境:500 筆設備主檔 Upsert
製造部門準備將 Excel 設備主檔匯入維護系統。檔案共有 503 列,業務說明應有 500 台設備;目標系統目前已有 470 台,本次採 Upsert。
AI 預檢發現:
- 503 列中有 3 組重複設備編號,去重後為 500 個鍵值。
- 500 個唯一鍵中,460 個已存在、40 個為新增候選。
- 目標系統另有 10 台未出現在來源檔;目前沒有停用或刪除規則。
- 17 筆設備編號疑似遺失前導零,例如
0007變成7。 - 8 筆部門代碼不存在於正式代碼表。
- 6 筆日期格式同時出現日/月與月/日的歧義。
- 4 筆啟用設備缺少負責人。
- 2 種來源狀態值未包含在目標系統允許值中。
上述問題可能落在同一列,因此不能把 17+8+6+4 直接說成 35 筆異常資料。必須用來源列編號去重後,才能得到真正受影響列數。
不安全的做法
- 直接把設備編號欄改成數字
- 只保留重複鍵的最後一筆
- 依中文部門名稱猜測目標代碼
- 將日期全部當成台灣常見格式
- 把來源沒有的 10 台設備自動停用
- 允許正確列先寫入正式系統,再慢慢處理錯誤列
建議處理方式
- 原始檔唯讀保存,另產生清理副本。
- 設備編號全部改以文字處理,向資料負責人確認 17 筆原始鍵值。
- 三組重複鍵整組隔離,比較衝突欄位後人工決定。
- 8 筆未知部門代碼列入映射確認,不做模糊配對。
- 6 筆歧義日期要求提供者改成
YYYY-MM-DD。 - 啟用設備缺負責人列列為硬性錯誤或警告,依正式規則決定。
- 10 台目標獨有設備保持不變,直到取得明確停用政策。
- 在測試環境試跑,取得新增、更新、未變更與拒絕筆數。
- 用部門、狀態及設備類型小計進行匯入前後對帳。
- 建立批次編號,確保失敗後可回復並安全重跑。
給主管的簡短摘要
本批設備主檔目前不建議直接匯入正式環境。503 列包含 3 組重複鍵,另有設備編號前導零、未知部門代碼、歧義日期及啟用設備缺負責人等問題;各問題可能重疊,需依來源列編號去重後確認實際影響筆數。建議先完成代碼與鍵值確認,再於測試環境執行 Upsert 試跑。目標系統中未出現在來源的 10 台設備,因尚無停用規則,暫不異動。
建議對帳表
| 控制項目 | 來源/匯入前 | 試跑後應說明 |
|---|---|---|
| 原始列數 | 503 | 成功+拒絕+略過應可回到 503 |
| 唯一設備鍵 | 500 | 不得產生額外重複鍵 |
| 既有匹配 | 460 | 更新與未變更要分開 |
| 新增候選 | 40 | 實際新增須扣除隔離列 |
| 目標獨有設備 | 10 | 未核准前保持不變 |
| 各部門/狀態小計 | 依來源統計 | 匯入前後差異需可解釋 |
常見錯誤、隱私與使用注意事項
常見錯誤
- 只抽看前十列:格式問題常藏在後段或少數例外。
- 直接在原始檔修正:失去原值與轉換軌跡。
- 讓 Excel 決定型別:前導零、長編號與日期可能被自動改寫。
- 用名稱相似度合併主檔:容易把不同客戶或設備錯誤合併。
- 問題筆數直接相加:同一列可能有多個問題,造成重複計數。
- 空白全部當 null:可能意外清除既有資料。
- 來源沒出現就自動刪除:增量檔不等於完整快照。
- 允許部分成功卻無批次紀錄:出錯後難以回復或重跑。
- 只核對總筆數:資料可能被分錯部門、狀態或單位。
- AI 產生修正檔後直接匯入:仍需人工複核與隔離環境驗證。
資料隱私
- 姓名、電話、Email、地址、員工編號及客戶代碼先去識別。
- 不貼真實帳密、連線字串、金鑰或正式資料庫內容。
- 對個資、薪資、醫療、財務與客戶機密採最小必要欄位。
- 截圖及錯誤日誌遮蔽敏感路徑、IP、權杖與查詢內容。
- 使用公司核准的 AI、儲存位置與資料保留政策。
- 匯入結果檔與拒絕檔也可能含敏感資料,需同等保護。
使用注意事項
- AI 若只看到樣本,只能提出規則與疑點,不能驗證全檔。
- 公式、正規表示式、SQL 或轉換腳本先在副本測試。
- 大批資料先用小批、代表性資料與極端案例試跑。
- 涉及財務、薪資、法規或醫療資料時增加雙人複核。
- 正式匯入與回復要由有權限的人員執行並留存日誌。
留言