文字與正規表示式
找出兩份清單新增與刪除的項目
使用工具
比較昨天與今天的清單,或計畫建立與實際建立的 ID 時,關鍵是屬於哪份清單,而不是在哪一行。文字差異顯示大量移動時,集合比較可能更適合問題。
每行輸入一項,可得到聯集、交集、左減右與右減左。無需只背數學術語:把左側定為計畫、右側定為實際,再用工作中的問題理解結果。
計畫三項、實際三項,卻不相同
alpha
beta
gammagamma
beta
delta兩邊都是三行,成員卻不同。交集為 beta、gamma;計畫獨有的左減右為 alpha;實際獨有的右減左為 delta。總數相同不能證明沒有遺漏。按成員比較,比對照相同行位置更直接。
聯集把任一側出現的項各列一次,得到 alpha、beta、gamma、delta 四種。三加三不等於六個不同成員,因為共同兩項只算一次,這不同於直接串接清單。
差集有方向
只說「差異是 alpha」無法說明缺失還是多出。左計畫右實際時,左減右是未登錄候選,右減左是計畫外候選。交換輸入也會交換意義。分享時應註明兩側角色與時間。
稱為候選,是因為不在清單中不一定就是故障。蒐集時間、期間或過濾條件不同也會產生差異。工具只知道輸入清單,核對前應統一範圍與截止時間。
同一 ID 出現兩次,集合仍算一種
alpha
alpha
betaalpha
beta兩方向差集都為空。alpha 雖是兩次對一次,但不同成員相同。庫存、訂單或事件次數涉及數量,僅此結果不夠。差集為空不證明數量相等。
順序變化同樣不改變成員,alpha、beta 與 beta、alpha 是同一集合。步驟順序、排名或優先規則應使用文字差異。區別在於如何定義相同,而非哪個工具更強。
比較前會去除空行與首尾空白
工具比較前去除首尾空白並排除空行,因此帶外部空白的 alpha 會符合 alpha。對貼上清單方便,但不適合把空白當識別內容的情況。檢查原文精確一致應使用不忽略空白的文字差異。
它不會統一內部空白、全半形或所有 Unicode 形式。外觀相似卻仍有差異時,可檢查碼位。未查原因就全部小寫或刪符號,可能誤合併不同 ID。
忽略大小寫前,先確定識別規則
左 Alpha、右 alpha 通常是不同項,開啟忽略大小寫後會符合。這只是比較設定,不會自動發現原系統的 ID 規則。若原系統區分大小寫,不能依據忽略後的結果登錄或刪除。
輸出保留的拼寫不是權威標準 ID,要統一表記應核對正式名冊。工具也不推測讀音、簡稱、同義詞或人物商品身分。實體比對與已統一 ID 的集合比較不同。
交叉檢查四種結果
首例中左獨有一項、共同兩項、右獨有一項,合為四項聯集。左三種分成一獨有加兩共同,右側同理。用比較規則處理後的不同成員數,而非原始行數,檢查理解是否正確。
報告應保留條件與方向,例如「同一期間,去空行與首尾空白後,計畫獨有 alpha、實際獨有 delta」。回原系統只核查這些項可縮小工作範圍。工具不登錄或刪除,原因與處理仍按作業流程判斷。
數量相同不代表成員相同
計畫 A、B、C,完成 A、C、D,兩邊都是三項。只看數量會漏掉 B 未處理與 D 意外處理。計畫減實際是 B,實際減計畫是 D;聯集 A、B、C、D,交集 A、C。集合說明成員關係,不說明成功原因或執行時間。
計畫 A、A、B,實際 A、B,集合相等,但無法判斷 A 是否應執行兩次。商品數量、請求和付款次數重視重複次數,應使用每次操作的獨立 ID 或另外統計次數。去重後相等不等於所有需要的次數都完成。
還要確認兩份清單是否同一時點。計畫匯出後新增的 ID 可能合理地只在實際中出現;處理中匯出的實際清單也可能暫時缺項。工具不知道時點,應同時記錄取得時間和範圍,將發現差異與認定錯誤分開。