比對兩份清單是否相符的作法,是從每份清單中逐行讀取一個項目,然後回報出現在兩邊的那些項目。一個遵守這個規則的瀏覽器工具,會把每行去空白後的非空行視為清單的單一成員、把行尾統一為 LF、刪除頭尾的空白、移除空行,並在任何計算開始前就以單一的大小寫規則決定什麼算作相符。接著,結果會顯示在一個標示為「兩者皆有」的面板中,並搭配另外四個檢視,將相符項目放到脈絡裡檢視,而不需要另一個獨立流程。當你手上是兩份很長的清單、需要快速處理重疊部分時——無論是核對庫存編號、把電子郵件清單跟報名表比對、或是拉出兩個活動共用的關鍵字——這個一次完成的做法就很重要。整個比對完全在本地進行,所以兩份清單都不會離開這個分頁;你在任一輸入框中打出的第一個拼法,就是去重後留存下來的項目在報告中顯示的拼法。

清單比對中什麼算作相符
清單比對中的「相符」檢視,就是兩組資料的交集。用集合的術語來說,交集包含同時屬於兩個集合的每個元素,而不包括只屬於其中一個集合的元素。這裡使用的運算名稱,遵循 MDN 的 JavaScript Set 方法參考以及 Python 內建的 set 型別各自記錄的標準集合定義,因此標籤的意思就跟你寫過 set(A) & set(B) 程式碼時所預期的完全一致。
除了交集之外,還有四個檢視能幫助你解讀相符結果。「只在 A」包含出現在 A 清單但不在 B 清單中的項目,而「只在 B」包含出現在 B 清單但不在 A 清單中的項目。「聯集」包含出現在任一清單或兩者的每一個不同項目。對稱差(標示為「兩者中其一非兩者皆」)包含剛好只出現在一份清單中的項目——也就是聯集扣除相符項目。這五個面板加起來,足以回答相符檢查後你可能會遇到的大部分問題,而不需再跑第二輪。
如何逐步比對兩份清單是否相符
- 在瀏覽器中開啟 比對兩份清單工具。
- 把項目逐行貼到 A 清單的文字框中。每行去空白後的非空行都會成為集合的一個成員,所以方框內的順序決定了報告中的顯示順序。
- 用相同的規則把項目逐行貼到 B 清單的文字框。
- 選擇字母大小寫是否會影響成員資格。預設為不區分大小寫;當 Apple 與 apple 必須視為兩個不同項目時,請切換為區分大小寫。
- 點擊「Compare」並等待五個標示面板產生結果。如果任一輸入超過 50,000 行或一百萬個 UTF-16 程式碼單位,或是兩份輸入在標準化後皆為空,工具會回傳明確的錯誤,而非部分結果。
- 先檢視「兩者皆有」面板——這就是你的相符檢視。
- 閱讀「只在 A」與「只在 B」了解方向性的差異,接著看「聯集」與「兩者中其一非兩者皆」取得綜合檢視。
- 複製標示好的報告,並在將該輸出視為正式結果之前,先依字面行政策與目的系統核對一次。
大小寫區分如何改變相符的判定
在比對兩份清單是否相符時,大小寫區分是最具決定性的一個選擇,因為在大多數下游系統中,同樣的字母、不同的大小寫會被視為不同的字串,但在其他系統中卻是同一個字串。大小寫規則會一致地套用於去重與所有五種運算,所以切換它會一次改變所有面板,而不僅僅是相符結果。
| 大小寫模式 | 輸入 A | 輸入 B | 相符(兩者皆有) |
|---|---|---|---|
| 不區分大小寫(預設) | Apple | apple | apple(保留 A 的第一個拼法) |
| 區分大小寫 | Apple | apple | —(無相符) |
如果 Apple 在 A 清單中先出現,而 apple 在 B 清單中先出現,不區分大小寫的比對會保留 Apple 的拼法,因為第一個顯示的拼法優先。這個「第一個拼法」規則同時也說明了為什麼 A 清單中兩個外觀相同的項目不會產生重複的相符項目;只有 A 中的第一次出現會被納入成員資格的判定。
除了相符清單之外,如何閱讀標示好的報告
報告是一段固定的內容,由五個大寫標題組成、以 LF 分隔,依序為 IN BOTH、ONLY IN A、ONLY IN B、UNION、EITHER NOT BOTH。每個標題後面接著屬於該檢視的值,取材自與螢幕面板相同的標準化陣列。空白的段落會以一條長破折號呈現,讓「沒有」一目了然,而不會讓人誤以為是區塊缺漏。
| 段落 | 包含項目 | 標準集合名稱 |
|---|---|---|
| In both | A 清單與 B 清單中都存在的項目 | 交集(Intersection) |
| Only in A | 只出現在 A 清單中的項目 | A 減 B(A minus B) |
| Only in B | 只出現在 B 清單中的項目 | B 減 A(B minus A) |
| Union | 出現在任一清單或兩者中的項目 | 聯集(Union) |
| Either not both | 剛好只出現在一份清單中的項目 | 對稱差(Symmetric difference) |
畫面上看到的面板與複製的報告來自同一份底層陣列,所以你看到什麼就是貼上什麼。「Copy all results」只有在瀏覽器確認寫入剪貼簿後才會回報成功;如果寫入剪貼簿被拒絕,工具會回傳一段手動複製的說明,而不是靜默地表示成功。
實際範例:兩份只有一項相符的小清單
假設 A 清單包含 apple、banana、pear,B 清單包含 banana、peach。在預設的不區分大小寫比對下,工具會標準化兩份輸入、對每份清單各自去重,然後計算出五個檢視。
- 兩者皆有:banana(唯一共享的成員)
- 只在 A:apple、pear(依 A 的顯示順序)
- 只在 B:peach(B 唯一非共享的成員)
- 聯集:apple、banana、pear、peach(A 在前,再加上 B 中新加入的成員)
- 兩者中其一非兩者皆:apple、pear、peach(聯集扣除相符項)
聯集長度為 A 的 3 個加上 B 新增的 1 個,共 4。交集長度為 1。對稱差長度為 4 減 1,即 3。這些關係是普遍成立的:對稱差永遠是聯集減去交集,而聯集永遠是交集加上對稱差。
相符偵測派上用場的常見任務
在許多清單工作流程中,相符偵測是瓶頸所在。把電子郵件清單跟報名表核對、檢查兩份 CSV 匯出檔是否共用同一欄庫存編號、找出某次傳輸會在兩個資料夾間複製的檔案名稱,以及拉出兩個活動已共用的關鍵字以便產生差異報告,全都化約為同一個運算:逐行讀取兩份清單,回傳出現在兩邊的列。「Compare Two Lists」工具以你所選擇的大小寫規則,在去重與五個檢視中一致套用,於一次作業中處理以上所有情況。
還有兩個常見的用途。第一個是白名單檢查:把白名單貼在 A 清單,新的項目貼在 B 清單,然後閱讀「只在 B」來找出尚未被允許的新項目。第二個是遷移檢查:把來源識別碼貼在 A 清單,目的識別碼貼在 B 清單,然後閱讀「只在 B」來找出尚未送達的項目,並從「只在 A」看出來源端仍有什麼待處理。相符清單本身——「兩者皆有」——則告訴你哪些項目已確認在兩處都到位。
限制、邊界情況與工具不會做的事
工具只依選定的大小寫規則比對字面上的行鍵。它不會解析 CSV、拆分逗號、進行 Unicode 標準化、移除標點、進行數值比對、解析網址、或執行模糊比對。行內空白在去除外圍空白之後會予以保留,因此一行「 apple 」會變為成員「apple」,但一行「apple pie」則保留為「apple pie」。一個實體行就等於一個字面上的項目。
每份輸入的上限為一百萬個 UTF-16 程式碼單位與 50,000 行。這些限制能讓比對在一般硬體上保持穩定;超過任一限制會回傳明確的錯誤,且不提供部分結果。若兩份清單在移除空行並標準化後皆為空,工具會回傳相同的錯誤,而不是渲染出五個空白段落。編輯任一文字框會清除先前的結果,因此修正貼上內容後務必重新執行。
由於每一步解析與比對都在本地進行,不會有任何輸入或結果被上傳、儲存、紀錄到比對服務,或送到 AI 模型。這個工具不是資料庫聯結、試算表合併器、差異檢視器、模糊去重器、安全存取控制驗證器,也不是對帳服務——它對別名、等效網域、Unicode 易混淆字元、數值範圍或商業身分一無所悉。當下游系統使用不同的標準化規則時,請先檢視其大小寫政策與空白規則,再把相符清單視為正式結果。
若想進一步了解,請參閱免費將 DOCX 轉換為 DOC:本機 TXT 工作流程。
若想進一步了解,請參閱在一次作業中從 Google 試算表文字中擷取數字。