ChatGPT 整理 Excel 教學:判斷重複資料,附練習檔與答案
想請 ChatGPT 整理 Excel,卻發現加總和原表對不起來?先別急著叫它重算。重複匯出的資料、同訂單不同品項、空白金額與退款,可能被當成同一種數字處理。這篇用 12 列資料,練習把規則說清楚,拿回每一列都有去向的結果。

先說這次要交什麼
整理結果、例外清單、可回到原始列的合計。本文使用純文字 CSV,你可以貼給 ChatGPT 練習;不需要把真實客戶資料交出去。參考答案由編輯團隊依規則編製,以 Python 重算,不是 ChatGPT 實測紀錄。
先問:一列代表什麼,哪個 ID 才能用來去重?
這份匯出的一列是一筆交易明細。row_id 是來源列的固定編號,像信封上的追蹤號,排序後也保留;transaction_line_id 才是這個練習系統的交易明細識別碼。order_id 是訂單號,一張訂單可以買兩種東西,不能看到訂單號重複就刪掉其中一列。
實際系統可能一列代表品項、付款事件或狀態更新。先問清資料定義,才能選去重鍵;這份範例的規則不直接套用所有 Excel。原表只讀,另存整理結果,才有辦法回查。
Excel 的「移除重複」也需要先選判重欄位。Microsoft 官方說明指出,這項操作保留第一筆並移除重複整列,建議先複製原始資料。所以先想清楚「相同」怎麼定義,再交給 Excel 或 AI 執行。
下載練習:12 列原始資料和核對答案
所有品項、編號與交易都是虛構。CSV 是純文字資料表,可用文字編輯器查看;若用 Excel 開啟中文出現亂碼,改由「從文字/CSV」匯入並選 UTF-8。先讀原始資料與規則,完成練習後再打開參考答案。
展開原始 CSV,直接複製練習
row_id,transaction_line_id,order_id,item,type,currency,amount,status,original_line_id R01,T01,O01,筆記本,sale,TWD,1200,confirmed, R02,T02,O01,收納袋,sale,TWD,300,confirmed, R03,T01,O01,筆記本,sale,TWD,1200,confirmed, R04,T03,O02,桌燈,sale,TWD,900,confirmed, R05,T03,O02,桌燈,sale,TWD,990,confirmed, R06,T04,O03,工具包,sale,USD,40,confirmed, R07,T05,O04,收納盒,sale,TWD,,confirmed, R08,T06,O05,資料夾,sale,TWD,600,pending, R09,T07,O01,收納袋退款,refund,TWD,300,confirmed,T02 R10,T08,O06,桌墊,sale,TWD,500,confirmed, R11,T09,O07,試用卡,sale,TWD,0,confirmed, R12,T10,O08,退款待核,refund,TWD,200,pending,
六條規則,比「幫我清理一下」更容易核對
- 同明細 ID 先比全部業務欄位。除了來源 row_id,其他欄位都相同才是本例可排除的匯出副本,保留最先出現的列,另一列留下重複原因。
- 同 ID 有矛盾,整組隔離。本例沒有可靠的版本時間,不能挑最後一列、較小金額,或平均兩個數字。若不是明確重複,先等來源確認。
- 空白不補零,待確認不算完成。amount 空白、status 為 pending 都列例外;confirmed 且明寫 0 的資料則保留。數字零和不知道是兩件事。
- 退款保留自己的身分。type 為 refund,amount 用正數單列,original_line_id 指向原銷售明細;先核對訂單、幣別與原明細。不要把原銷售抹掉,也不要直接改成負銷售混算。
- 幣別與類型分開。分別加總 TWD/USD 的 sale 與 refund。沒有匯率就不換算;這個練習也沒有手續費、稅或付款入帳時間,不能宣稱實收或淨利。
- 每列都有去向。原始每個 row_id 只能在 cleaned 或 exceptions 出現一次。例外不是被刪除,而是暫不納入本次合計的可追查資料。
可直接複製的 ChatGPT 資料整理指令
選取下面的指令,加上下載的 rules.txt 和 raw.csv 全文一起貼上。如果要改成自己的資料,先調整欄位與規則;不要讓 AI 在不知道業務定義時替你決定。
請依我提供的處理規則整理這份虛構交易明細,保留原始資料。 先確認一列代表什麼、row_id與transaction_line_id有何不同,再開始處理。 交付: 1. cleaned.csv:可納入本次已確認彙總的列,保留所有原欄位與row_id。 2. exceptions.csv:每個未納入列的原欄位、row_id與明確原因;重複要指出保留哪列。 3. 參考說明:逐列處理紀錄、各幣別的sale與refund分別合計、計算式與來源row_id。 4. 筆數檢查:原始每個row_id在兩份輸出中合計恰好出現一次,沒有重複或遺漏。 不要自行改業務規則、填補缺失金額、挑選衝突版本、合併不同幣別,或把退款改成負銷售。 缺資料就列出需要確認的欄位。若無法提供檔案,完整輸出CSV文字讓我另存。 最後回查每個合計使用的列,並說明哪些例外尚未解決。 以下依序貼上rules.txt與raw.csv的全部內容。
逐列對照:保留哪些,哪些需要再確認?
以下為編輯參考答案。你的結果可以換句話說,但來源列、納入範圍與數字應一致。先看 R01/R02/R03:前兩筆是同一訂單的不同品項;R03 才是 R01 的重複副本。
R01 · T01 · O01
TWD 1200
保留;銷售明細
R02 · T02 · O01
TWD 300
保留;銷售明細
R03 · T01 · O01
TWD 1200
與R01業務欄位完全重複;保留R01
R04 · T03 · O02
TWD 900
同明細ID有金額衝突;整組隔離,不擇一
R05 · T03 · O02
TWD 990
同明細ID有金額衝突;整組隔離,不擇一
R06 · T04 · O03
USD 40
保留;銷售明細
R07 · T05 · O04
TWD 空白
金額缺失;不補成0
R08 · T06 · O05
TWD 600
狀態待確認
R09 · T07 · O01
TWD 300
保留;退款單列
R10 · T08 · O06
TWD 500
保留;銷售明細
R11 · T09 · O07
TWD 0
保留;銷售明細
R12 · T10 · O08
TWD 200
狀態待確認,且缺原銷售明細ID
R04 與 R05 都叫 T03,卻分別是 900 和 990;兩列一起放進例外。R07 沒金額,不能當零;R11 明確是零,則保留。這些列不該都被「移除空值/重複值」一次處理掉。
重算結果:先對列,再對金額
12 列原始資料 = 6 列整理結果 + 6 列例外
整理結果:R01、R02、R06、R09、R10、R11。
例外清單:R03、R04、R05、R07、R08、R12。
- TWD 已確認銷售明細:R01 1,200 + R02 300 + R10 500 + R11 0 = 2,000。
- TWD 已確認退款明細:R09 = 300,原明細 T02 對應 R02,訂單與幣別相符。
- USD 已確認銷售明細:R06 = 40;這份完整練習檔沒有符合條件的 USD 退款,所以該小計是 0。
不把 2,000 和 40 加成總營收,也不把退款當成負銷售混在一起。此處的「沒有 USD 退款」只針對這份完整練習檔;真的拿不到退款資料時,應寫未知。12 列都有交代能抓出漏列,逐筆金額與處理原因仍要另外核對。
OpenAI 的試算表使用說明也提醒,採用結果前要核對公式、計算、引用及改動的儲存格。本文以貼入 CSV 文字練習,不要求安裝試算表增益集。
合計不同時,怎麼要求修正?
先找是哪一組列有差異,再指出具體規則。例如:「你把 R02 當成 R01 的重複列,但它們的明細 ID 分別是 T02 和 T01。請恢復 R02,說明哪些合計會改變,保留其他正確結果。」這是編輯設計的錯誤情境,不是一次 ChatGPT 回答紀錄。
下一輪換一小份材料再試:可以增加同訂單的新明細、已確認的零金額,或一組矛盾資料,先自己寫下預期處理方式,再對照輸出。把修正後指令和規則留下來;能換資料重跑,才適合逐步搬進每月工作。
交件前可接著用六項 AI 工作成果驗收清單檢查來源與版本;如果材料是會議文字,則看ChatGPT 會議紀錄範例,把同樣的交辦方法換成決議與待辦。