リスト比較ツール(共通行・差分抽出)

2つのテキストリスト(1行1項目)を比較し、両方に共通する行・Aのみの行・Bのみの行を集合演算で自動抽出します。メールリストの突合や在庫リストの重複チェックに便利。比較処理はすべてブラウザ内で完結し、入力内容がサーバーに送信されることはありません。

Tips

  • メールマガジンの配信リストと退会済みリストを比較すれば、配信対象から除外すべきアドレスを一括抽出できます。
  • 在庫リストと発注リストを比較して、まだ発注していない商品だけを素早く洗い出すといった使い方もできます。
  • 各行は前後の空白を自動で除去してから比較するため、コピー&ペースト時に混入した余分なスペースを気にする必要はありません。
  • 同じ行が複数回登場していても、結果には重複を除いた一意な行だけが表示され、リストの整理にも役立ちます。
  • 「大文字・小文字を区別する」のチェックを外すと、表記ゆれ(Example.com と example.com など)を同一行として扱えます。

よくある質問

Diff比較ツールは2つのテキストを行の並び順を保ったまま1行ずつ照合し、追加・削除された行を検出します。本ツールは並び順を無視し、集合として共通行・片方だけの行を抽出する点が異なります。同じ内容の行が別の順序で並んでいる場合、Diff比較ツールでは差分として検出されますが、本ツールでは共通行として扱われます。

同じ内容の行が複数回入力されていても、比較結果には重複を除いた一意な行として1回だけ表示されます。出現回数を含めた比較には対応していません。

デフォルトでは大文字・小文字を区別して比較します。「大文字・小文字を区別する」のチェックを外すと、Exampleとexampleのような表記の違いを同一の行として扱えます。

前後の空白は自動的に除去され、内容が空になった行(空行)は比較対象から除外されます。空行の有無を気にせずリストを貼り付けられます。

いいえ。比較処理はすべてブラウザ内のJavaScriptで完結し、入力したリストの内容がサーバーに送信されることはありません。メールアドレスなど個人情報を含むリストでも安心してご利用いただけます。
ツールくん

余談ですが ― 「集合演算」でリストを比較するという考え方

2つのリストの「違い」を求める方法は一つではありません。テキスト差分(Diff)ツールのような行単位のdiffアルゴリズムは、行の並び順を保ったまま対応関係を探すため、プログラムのソースコードや設定ファイルの変更履歴を追うのに向いています。一方、メールアドレスや在庫コードのようにそもそも順序に意味がないリストを比較する場合は、数学の集合演算(積集合・差集合)で考えた方が直感的です。本ツールは後者の考え方を採用しています。

集合演算における「積集合(intersection)」は両方の集合に共通して含まれる要素、「差集合(difference)」は片方の集合にしか含まれない要素を指します。本ツールの「共通行」は積集合(A∩B)、「Aのみの行」「Bのみの行」はそれぞれ差集合(A−B、B−A)に相当します。数学的には単純な操作ですが、実務では顧客リストの名寄せや配信対象の絞り込みなど幅広い場面で使われています。

実装上の工夫として、本ツールは行を比較する際にJavaScriptのMapオブジェクトを使い、正規化したキー(大文字小文字を区別する場合はそのまま、区別しない場合は小文字化した文字列)ごとに最初に出現した表記を記録しています。これにより、数千行規模のリストでも高速に比較でき、かつ出力される行は元の表記(大文字小文字を含む)をそのまま保持できます。