2つの表の差分(片方にだけある行・値が変わった行)を見つける方法
先月と今月の商品リストを比べて、増えた商品・消えた商品・価格が変わった商品を見つけたい。こうした「2つの表の差分」は、何を差分と呼ぶかを先に決めると、迷わず取り出せます。Excelの関数とテマゼロAIの突き合わせで実際に試した結果を、Microsoftサポートの説明(2026年10月17日確認)とあわせてまとめました。
公開:2026年10月17日 最終更新:2026年10月17日 執筆:板野 克基(株式会社ブライトアセット) 編集方針
要点
- 差分は「片方にだけある行(追加・削除)」と「両方にあるが値が変わった行」の2種類に分けて探します。
- どちらも、行を見分けるキーの列(商品コード・注文番号など)を1つ決めるのが出発点です。行の順番が違っていても、キーで比べれば差分になりません。
- 片方にだけある行は、突き合わせの「Aにだけある行」「Bにだけある行」で一度に出せます。
- 値が変わった行は、比べたい列をつないだ列をキーにすると、変わった行が両方の一覧に出ます。
- セルの色分けや、どの列が変わったかの表示はできません。
差分の種類を決める
| 差分の種類 | 例(旧=先月、新=今月) |
|---|---|
| 新にだけある行 | 今月追加した商品 |
| 旧にだけある行 | 今月なくなった商品 |
| 両方にあるが値が違う行 | 単価を変えた商品 |
| 両方にあって値も同じ行 | 変わっていない商品(差分ではない) |
「どの列が同じなら同じ行か」を決めるのがキーです。商品リストなら商品コード、受注なら注文番号のように、1行に1つだけの値を選びます。キーが重なっている表では、どの行と比べたかがあいまいになるので、先に重複を整理します。
Excelの関数で探す場合
片方にだけある行は、COUNTIF関数で、相手の表のキー列に同じ値が何個あるかを数えて見つけます。たとえば旧の表の各行に =COUNTIF(新!A:A, A2) を入れ、0になった行が「旧にだけある行」です。新の表でも同じように数えれば「新にだけある行」がわかります。
Microsoftサポートによると、COUNTIFは大文字と小文字を区別しません(このツールの突き合わせは大文字と小文字を別の値として扱うので、COUNTIFと結果が変わることがあります)。また、255文字より長い文字列を照合すると正しい結果にならないことがあります。値が変わった行は、VLOOKUPなどで相手の表の値を横に引いてから、2つの列が同じかを比べる式を入れて確かめます。表が大きいと式の列が増えるので、次の突き合わせの方法も検討してください。
片方にだけある行を出す(突き合わせ)
- 表Aに旧の表、表Bに新の表を見出しごと貼り付けます。Excelのセル範囲をコピーしてそのまま貼れます。
- 「表Aの突き合わせる列」と「表Bの突き合わせる列」に、キーが左から何列目かを入れます。
- 「出力する内容」で「Aにだけある行(Bにない)」を選ぶと旧にだけある行、「Bにだけある行(Aにない)」を選ぶと新にだけある行が出ます。
実際に、旧の表(A-01・B-05・C-10・D-20)と新の表(A-01・B-05・C-10・E-30)で試すと、「一致した行:3行 / Aだけ:1行 / Bだけ:1行」と表示され、Aにだけある行はD-20、Bにだけある行はE-30でした。「AとBの全行」を選ぶと、両方を1つの表に並べて見られます。
「前後の空白・全角半角の違いを無視」は最初からオンです。全角の「E-30」と半角の「E-30」は同じキーとして比べますが、大文字と小文字は別の値になります。
値が変わった行を出す
突き合わせのキーは1列なので、そのままでは「同じ商品コードで単価だけ違う行」は差分として出ません。次の2つの方法があります。
方法1:横に並べて比べる
「Aの全行にBの列を付ける」を選ぶと、旧の行の右に新の値が並びます。先ほどの例ではB-05の行に、旧の単価2800と新の単価3000が並びました。結果をCSVで保存してExcelで開き、2つの単価の列が同じかを比べる式を入れれば、変わった行に印が付けられます。
方法2:比べたい列をつないだキーを作る
旧と新の両方の表で、先頭に「キー」の列を挿入します。商品コードはB列・単価はD列に移るので、A2に =B2&"|"&D2 と入れて下までコピーします。突き合わせる列は「1」です。この列で突き合わせると、値が変わった行は「Aにだけ」と「Bにだけ」の両方に出ます。
| 出力 | 実際に出た行 |
|---|---|
| Aにだけある行 | B-05|2800(旧の単価)・D-20|2200(削除) |
| Bにだけある行 | B-05|3000(新の単価)・E-30|1800(追加) |
両方の一覧に同じ商品コード(この例ではB-05)が出ていれば「値が変わった行」、片方にしか出ていなければ「追加」か「削除」です。比べたい列が3つ以上あるときも、同じように「|」でつないでキーにします。
コードの全角半角や空白のゆれを先にそろえる住所・電話の表記ゆれ統一(無料・登録不要)→できないこと
- 変わったセルの色分け:結果は行の一覧で、どの列が変わったかの印は付きません。方法1でExcelに戻して確かめます。
- 複数の列をそのままキーにする:キーは1列だけです。複数の列で比べるときは、方法2のようにつないだ列を作ります。
- 同じキーが複数ある表:表Bに同じキーが2行以上あると、上にある最初の行だけを使い、「表Bで同じキーが1件重複しています」と表示します。先に重複削除で整理してください。
- 数式や書式の違い:比べるのは文字としての値だけです。数式やセルの書式の違いを調べるなら、Microsoftの「スプレッドシート比較」(Office Professional Plus 2013・2016・2019、Microsoft 365 Apps for enterprise で利用可能)が対象です。
よくあるつまずき
- 同じはずの行が全部差分になる:キーの先頭の0が消えている(00123と123)、ハイフンの種類が違う、などが原因です。照合で一致しないときの確かめ方はVLOOKUPで#N/Aになる原因と直し方にまとめています。
- 表示形式の違いで値が変わったことになる:「1,500」と「1500」は文字としては別の値です。金額の列は、両方の表で同じ表示形式にしてから比べます。
- 旧と新を逆に入れた:「Aにだけ」と「Bにだけ」の意味が入れ替わります。表Aを旧、表Bを新と決めておくと読み違えません。
まとめ
差分は、キーを1つ決めて「片方にだけある行」を出し、値の変化は比べたい列をつないだキーで両方の一覧に出して見つけます。セルごとの違いまで見たいときは、横に並べた結果をExcelに戻して比べてください。
出典
- COUNTIF 関数(Microsoft サポート)(2026年10月17日確認)
- スプレッドシート比較の基本的な作業(Microsoft サポート)(2026年10月17日確認)
2つのCSV・Excelの表を商品コードや注文番号でつなぎます。VLOOKUPを組まずに結合し、片方にしかない行(#N/Aになる行)も一覧で出せます。データはブラウザ内だけで処理。
Excel・CSV 表の突き合わせを使う(無料・登録不要)公開中のツール 41本・解説ガイド 33本。入力した数字はブラウザの中だけで計算し、サーバーには送りません。