2026年9月30日 · アクチュアル

CSVの差分を、行番号ではなくIDで比較する

一覧が更新されるたびに、どこが変わったのか探していませんか。並び替えや行の追加がある一覧では、同じ行番号のセルを比べるだけだと、大量の差分が出てしまいます。商品コードなどの変わらないIDを使うと、同じ項目の内容を比べられます。

先に「1行は何を表すか」を確認する

商品単位の表なら商品ID、案件単位なら案件IDです。ただし、商品IDが支店ごとに繰り返される表では商品IDだけでは足りません。1つの商品・支店の組を表すなら、商品IDと支店コードの2列をキーにします。

例:商品一覧が更新された場合

変更前 A
商品ID,商品名,価格
001,コーヒー豆,1200
002,マグカップ,1800
003,ドリッパー,2400

変更後 B
価格,商品ID,商品名
1900,002,マグカップ
1200,001,コーヒー豆
2000,004,タンブラー

商品IDをキーにし、「商品名」「価格」を対応させると、行や列の並びが違っても次の結果になります。

商品ID判定内容
001一致比較した列に変更なし
002変更価格 1800 → 1900
003削除Aにあり、Bにない
004追加Bにあり、Aにない

3つのCSVを使い分ける

  1. 照合一覧:追加・削除・変更・一致を含む、照合できた行の一覧。
  2. セル変更:変わった列の「変更前」と「変更後」を1行ずつ記録。
  3. 要確認:キー空欄や重複などで1対1に照合できなかった行。

「要確認」の行は、照合一覧には入れません。照合一覧だけを見て「すべて比較した」と判断しないでください。

比較対象外の列にも注意する

片方にしかない列や対応を外した列は比較しません。たとえば価格列を外した場合、価格が変わっていても「一致」になります。「一致」は指定した列の範囲で同じ、という意味です。画面に表示する比較対象外の列を確認してください。

次回用にレシピを保存する

設定レシピには、列名の対応、キー、空白などの比較ルールを保存します。翌月のCSVを読み込んでからレシピを読み込むと、同じ条件で比較できます。列名が変わったときは、対応を設定し直してください。元の行データはレシピに含めません。

サンプルで照合する