同じIDが繰り返される表で明細の変更を比較する

主IDと明細IDが変更前後で変わらない場合は、両方を使って対応する行を特定します。行の順番に頼らず、比率などの変更を比較する方法です。

同じIDが繰り返される表で明細の変更を比較する 説明図
架空のデータを使った説明図です。実際の画面キャプチャではありません。

主IDの下に複数の明細がある場合は、主IDと明細IDの両方を結合キーにします。この方法は、両方のIDが変更前後で変わらず、その組み合わせで各明細を特定できる場合に使えます。変更される比率は結合キーに含めず、「値を比較」で前後の値を照合します。

架空の入力と必要な出力

G1は両方の表に2行ずつありますが、IDとLineを合わせると各行を区別できます。Afterで行の順番が変わっていても、G1・A同士、G1・B同士を対応させて比べます。

Before

ID Line Share
G1 A 0.6
G1 B 0.4

After

ID Line Share
G1 B 0.3
G1 A 0.7

接続と条件の設定

  1. Beforeを先に、Afterを後に読み込みます。ID同士を結び、「両方のシートの全行を保持」を選びます。
  2. Lineも結合条件に追加します。IDとLineの両方が一致する記録を結びます。
  3. Share同士をつなぎ、対象条件の「VS」で「値を比較」に切り替えます。
  4. 「結果のプレビュー」で変更された列と変更前後を確認します。Shareを3つ目の結合キーにすると、変更された記録が一致しなくなります。

接続と条件の設定 説明図

AとB、それぞれの比率の変更を確認する

2行とも変更ありです。Aは0.6から0.7へ、Bは0.4から0.3へ変わりました。キーの重複が報告されたら、各表のIDとLineの組み合わせが固有か確認してください。

比較結果 変更された列 変更内容 ID Line Share After_ID After_Line After_Share
変更あり Share Share: 0.6 → 0.7 G1 A 0.6 G1 A 0.7
変更あり Share Share: 0.4 → 0.3 G1 B 0.4 G1 B 0.3

結果で確認する点 説明図

適用範囲と注意点

Line自体が変わる場合は、IDとLineでは同じ明細の変更前後を結び付けられません。変更されない別の識別子や、前後の対応を示す情報が必要です。IDとLineの組み合わせが重複する場合も、各明細を特定できるよう元データを整理してください。行番号だけで対応させると、並べ替え後に別の記録を比べてしまうおそれがあります。

自分のファイルで始めましょう

JOIN SHEETを使ってみる ↗

Excel・CSVの作業はPCでご利用ください。
新しいタブで開くため、作業中のデータは置き換わりません。

サンプルの検証日:

出典

Power Query - Compare two tables with same columns (Reddit r/excel)

原文では、比率やテキストに加えてID2も変更の対象です。回答では、変更前後のどの明細を対応させるのか、情報が足りない点が指摘されています。

この記事の架空例では、IDとLineは変わらないものとしてShareだけを比較します。原文にあるID2自体の変更を特定する問題は解決していません。質問者の実データやJOIN SHEETの利用体験を紹介したものではありません。