CSV差分比較
2つのCSVファイルを比較し、追加された行・削除された行・変更されたセルを一目で確認できます。任意の列を行の識別キーに指定して行を照合し、変更前後の値を並べて表示。列構成が異なるCSV同士でも比較でき、データ処理はすべてブラウザ内で完結します。
Tips
- 「行を識別するキー列」は既定で1列目が選ばれますが、IDや主キーに相当する列がある場合はそちらを選ぶと、行の並び替えや追加・削除があっても正しく対応行を照合できます。
- 見出し行がないCSV同士を比較する場合は「先頭行を見出しとする」のチェックを外してください。col1・col2…という連番の列名で自動的に比較されます。
- 「変更された行」のセクションでは、キーが一致する行同士で列ごとに値を比較し、異なる列だけを「変更前→変更後」の形で一覧表示します。
- TSV(タブ区切り)ファイルも区切り文字を「タブ」に切り替えるだけでそのまま比較できます。
- ファイルをアップロードする代わりに、Excelやスプレッドシートからコピーした範囲をそのまま貼り付けても比較できます。
よくある質問
エクスポートしたマスタデータの更新前後を比較したり、システム移行前後のデータ整合性を確認したりする場面でよく使われます。行数が多いCSVでも、追加・削除・変更された行だけを抽出して確認できるため、目視での差分確認より大幅に時間を短縮できます。
はい。行の照合には「行を識別するキー列」の値を使うため、行の並び順が異なっていても、キーの値が一致する行同士を正しく比較できます。ただし同じキー値が重複している場合は、後に出現した行の値が優先されます。
はい。比較元・比較先の見出しを合成した列一覧を基準に比較するため、列の並びが異なっていても列名で正しく対応付けられます。片方にしか存在しない列は、もう片方の値を空欄として扱い差分に表示します。
いいえ。比較処理はすべてブラウザ内のJavaScriptで完結し、入力・アップロードしたCSVの内容がサーバーに送信されることはありません。機密情報を含むデータでも安心してご利用いただけます。
はい。セルの値は文字列として厳密に比較されるため、大文字・小文字の違いや前後の余分な空白も「変更あり」として検出されます。表記ゆれを無視したい場合は、事前にデータ側の表記を統一しておくことをおすすめします。
余談ですが ― CSVの差分検出がテキストdiffだけでは足りない理由
CSVファイル同士の差分を確認する作業は、Excelで2つのシートを並べて目視比較したり、Gitのdiffコマンドで行単位のテキスト差分を見たりする方法が伝統的でした。しかしCSVは1行の中に複数の値がカンマで並ぶ構造を持つため、行単位のテキスト差分では「その行のどの列が変わったのか」まではひと目でわかりません。本ツールがセル単位で変更箇所を特定するのは、この弱点を補うためです。
業務システムの世界では、データベースのテーブルをCSVでエクスポートして比較する「データ突合」という作業が頻繁に発生します。移行前後のデータが完全に一致しているか、月次バッチ処理の結果が想定通りかを確認する際、対象の行数が数千〜数万行に及ぶことも珍しくありません。こうした規模になると、キー列を指定して機械的に突合するアプローチが不可欠になります。
Gitのようなバージョン管理システムのdiffアルゴリズム(Myers差分法など)は行単位の追加・削除を検出するのが得意ですが、CSVのように「同じ行でも一部の列の値だけが変わる」データには必ずしも最適ではありません。行をキーで対応付けてからセル単位で比較する本ツールの方式は、表形式データの差分検出に特化したアプローチだと言えます。