IDのない2つのExcel表を複数列の組み合わせで比較するには?
商品と地域の両方が同じデータだけを共通項目として照合します。IDがない表でも複数列の差分を確認する方法と、その限界を説明します。
IDがなくても商品と地域などの値の組み合わせを照合できます。JOIN SHEETで各列を「値を比較」でつなぐと、選んだ列のすべてが同じ組み合わせを共通項目として表示します。ただし、変更前後を特定するIDがないため「同じ依頼の内容が変わった」とは断定できません。
商品だけでは地域の違いを見落とす
架空の依頼一覧にはリンゴ・ソウル、梨・釜山、ミカン・済州があります。確認一覧には梨・ソウル、リンゴ・ソウル、ミカン・済州があります。商品の種類だけなら両方に同じ果物がありますが、梨の地域が異なります。
| 依頼の商品 | 依頼の地域 | 確認の商品 | 確認の地域 |
|---|---|---|---|
| リンゴ | ソウル | 梨 | ソウル |
| 梨 | 釜山 | リンゴ | ソウル |
| ミカン | 済州 | ミカン | 済州 |
左右の同じ行が対応するわけではありません。図はこの架空データの説明図で、画面キャプチャではありません。
商品と地域を両方とも比較対象にする
- 依頼と確認のシートを読み込み、商品と地域が別々の列であることを確認します。
- 依頼の「商品」を確認の「確認商品」へ接続し「値を比較」を選びます。
- 「地域」も「確認地域」へ値の比較で接続します。別の結合キーは作りません。
- 「結果のプレビュー」で商品・地域の組み合わせと「比較結果」を確認します。
地域まで同じ組み合わせだけが共通する
| 商品と地域 | 比較結果 |
|---|---|
| リンゴ・ソウル | 両方に存在 |
| ミカン・済州 | 両方に存在 |
| 梨・釜山 | 1つ目のみ |
| 梨・ソウル | 2つ目のみ |
結果は4行です。梨・釜山と梨・ソウルは別々に残ります。釜山の依頼をソウルへ変更した可能性もあれば、釜山の依頼を取り消して別の依頼が追加された可能性もあります。この比較だけでは区別できません。
どの列を比較すればよいですか?
色や規格まで同じときだけ同じ依頼と見なすなら、その列も比較します。作成時刻など毎回変わる値を不用意に含めると、業務上は同じ内容でも別の組み合わせになります。
同じ組み合わせが繰り返される場合は出現回数も反映されます。片方に2回、もう片方に1回なら回数の差も結果に出る場合があります。依頼ごとに変わらない一意の番号があるなら、IDを結合キーにする変更比較が適しています。
繰り返しの作業を減らす
シートを接続・比較して、必要な結果を確認できます。
この記事はProプランの利用環境を前提としています。
JOIN SHEETを使ってみる ↗Excel・CSVの作業はPCでご利用ください。新しいタブで開くため、作業中のデータは置き換わりません。
サンプルの検証日:
出典
Comparing two dataframes and getting the differences — Stack Overflow
How to compare two lists with multiple columns and get results from all columns? — Reddit r/excel
複数列の比較という問題を独自の架空データで再構成しました。原文の表や数式を複製したものではなく、質問者の製品利用事例でもありません。