CSV 自動化怎麼做?
先分清合併、比對與排程
每週收到一批 CSV,想少做重複整理,先決定你需要的是「這次批次處理」,還是「往後按相同規則刷新」。兩者的工具和驗收方式不同。
HaoToolbox 提供手動選檔後的瀏覽器批次處理,不會定時執行、監看資料夾或串接系統。如果你需要無人值守的每天更新,請直接看重複執行與排程的選擇。
先問:資料要往下接、往旁邊補,還是看前後差異?
| 你要得到什麼 | 選擇 | 開始前先確認 |
|---|---|---|
| 把多份同結構資料接成一份 | Power Query 合併 CSV(外部教學) | 各檔欄名、順序與資料含義一致;這一步不是按 ID 補欄。HaoToolbox 目前沒有獨立的上下接表工具。 |
| 依共同鍵把另一份表的欄位補進來 | CSV 查表合併 | 確認查表鍵、重複鍵與查不到的資料;不是把兩表直接上下串接。 |
| 知道本週比上週新增、刪除或改了什麼 | CSV 差異比對 | 第一欄須為唯一 ID;兩份檔的欄名與順序須對齊。 |
| 留下重複資料中的一筆 | CSV 去重整理 | 先定義比對鍵與來源優先順序;同 ID 不同內容不能草率當成相同資料。 |
| 先刪掉不需交接的欄,或調整欄位順序 | CSV 欄位整理 | 只改欄位結構,不把它當作去重、比對或資料清洗。 |
合併、查表、去重與比對回答不同問題。不要因為有相同 ID,就直接刪掉其中一列;那一列可能是更新,也可能是另一筆合法明細。
每週庫存交接:保留舊版,再核對新版
以下是合成工作情境,不是使用者資料或本次工具運算結果:你收到兩個倉庫的本週庫存,以及上週已確認的總表。目標是交出本週總表和變動清單。
- 先定義一列代表什麼。如果同一 SKU 在不同倉庫各有一列,SKU 本身便不是唯一 ID。不可把不同倉庫的資料當成重複刪除;也不可直接拿非唯一 SKU 做差異比對。應由來源系統提供穩定且唯一的記錄 ID,或改用能明確處理複合鍵的流程。
- 統一欄位後再接資料。例如兩份表都使用「記錄ID、倉庫、SKU、數量」且含義一致,再合併本週兩份 CSV。若一份數量是箱、另一份是件,先解決單位問題,欄名相同仍不代表可以合併。
- 用上週與本週總表做版本比對。將唯一記錄 ID 放第一欄,保持兩版欄名與順序相同。先檢查 ID 是否缺漏或重複,再執行比對;不要用列號當 ID,排序改變便會錯配。
- 分開交出總表與差異報告。本週總表是當期狀態,差異報告是變動證據。保留來源 CSV,不覆寫上週已核對檔;將處理日期、來源版本及比對規則一起交接。
若你只需比對兩版已整理好的名單,可直接進入工具。若來源沒有唯一 ID,先解決識別規則,不要為了產生報告而任意去重。
何時用瀏覽器,何時用 Power Query 或 Python?
這次要完成,並由人核對:瀏覽器工具
適合手上已有檔案、願意手動選檔、檢查預覽並下載結果的工作。HaoToolbox 的檔案處理在瀏覽器內執行;各工具的檔數、大小與格式限制以工具頁為準。各步驟之間仍須由你下載、核對與重新選檔,沒有跨工具自動串接。
固定結構、反覆匯入 Excel:Power Query
如果每週都要對相同結構的 CSV 套用整理規則,可考慮在 Power Query 建立可重用查詢。Microsoft 的合併 CSV 官方教學示範從資料夾選檔與套用轉換;不相關的檔案應先篩除。請另外確認你使用的產品與環境支援哪些刷新方式,不能把一次手動刷新等同無人值守排程。
客製規則、系統整合或無人值守:程式與排程環境
可用 Python 等方式實作處理規則,再由自己的執行環境安排時間、失敗通知與結果保存。pandas 的合併與比較文件區分串接、鍵值合併與比較;合併鍵重複可能讓結果筆數膨脹,應先驗證鍵的唯一性。程式庫本身不等於已設定完成的排程服務。
無論選哪種方式,先拿一份可人工算清的資料確認規則,再擴大到整批。不要把「可以執行」當成「結果已正確」。
下載後,用這份清單核對交接
- 筆數:接表時用資料列數相加(不含各檔表頭);若有去重或篩選,另記排除筆數與理由。不可把預覽列數當成完整檔案筆數。
- 識別鍵:確認唯一、非空且前導零保留。例如
0007與7是否相同,應由業務規則決定,不由試算表自動轉型決定。 - 版本比對:在唯一 ID 的前提下,舊版筆數應等於刪除+修改+未變,新版筆數應等於新增+修改+未變。修改筆數與變更欄位數分開核對。
- 查表:查看未配對與重複鍵的處理。補欄後多出資料列,可能是鍵對應關係改變;先查原因,不能直接刪掉多出列。
- 文字:抽查前導零、空白、引號、換行與中文。檢查工具的原始預覽及文字值,避免用開啟 CSV 後已自動轉型的畫面反推原檔。
- 交付:保留來源版本、所選規則、總表與報告。將有疑問的 ID 列成待確認項,不把未配對直接解讀為資料不存在。
內容核對:2026 年 10 月 21 日。工具的支援範圍以各頁說明為準;本文沒有提供代管排程服務。