shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Query】データ比較のためにExcelシートを左右で結合する方法

Excelで同じレイアウトで作成した2つのシート(一覧表)の差異を確認する際、異なるシートの情報を左右に並べて結合できると、視認性向上や数式によるチェック作業が容易となります。

ExcelのVLOOKUP関数を活用した表結合が、Excelで利用可能なPower Queryのマージ(結合)機能で効率的に実現できます。

内容:

なお、確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2504)です。

アウトプットイメージ

PowerQueryのマージ機能で 次のように今回と前回シートを左端列の値を基準に左右で結合します。

Excelファイルにシート「今回分」、シート「前回分」がある状態を前提とします。

2つのシートが左右に並び、追加、削除の状況もわかります

PowerQueryのマージ機能で2つのシートを左右で結合

左右で結合後、PowerQueryで列ごとの比較を追加したり、Excelの条件付き書式の機能で差異に色付けなどで、データ比較をより効率化することも可能です。

設定手順

基本

Power Queryの基本的な手順等が不明な場合は、以下をご覧ください。

shikumika.org

設定の全体像

前述のアウトプットイメージでのPowerQueryの設定後のエディター画面は次のとおりです。

Excelのシート「今回分」と「前回分」の2つをテーブルに変換し、PoweQueryに読み込んでいます。その後、「今回分」のクエリに「前回分」を追加し、合計4ステップだけの単純なクエリです。

合計4ステップです。「今回分」と「前回分」の2つのテーブルを読み込んでいます。

PowerQueryの設定イメージ

以下は、各シートのデータをそれぞれPower Queryに読み込み後の手順です。

マージの設定手順

  1. 「ホーム」タブ から 「クエリのマージ」 を選択します。
  2.  結合したい2つのテーブルを選び、共通のキーとなる列を指定します。
  3. 結合の種類」 を 「左外部結合」 または 「完全外部結合」 に設定し、左右に並べる形でデータを統合します。
    事例では、下図のとおり「今回分」と「前回分」のテーブルで、左端列の”端末ID”を照合列とし、「完全外部(両方の行すべて)」で結合しています。
    「完全外部(両方の行すべて)」とすることで、
     ● 「今回分」にあり「前回分」になし
     ● 「今回分」にないが「前回分」にあり
    のデータも比較できます。

    結合の種類を「完全外部(両方の行すべて)」にしています。

    マージの設定例
  4. 結合されたテーブルを展開する

設定は以上です。「閉じて読み込む」 をクリックすると、左右で結合されたシートが出力されます。

マージの補足説明

結合(マージ)の詳細な設定例は以下に記載してます。この事例ではデータの抜け漏れチェック(リストにないデータの抽出)の手順ですが、基本は同じです。

結合の種類が上記は「完全外部(両方の行すべて)」ですが、以下は「右外部」になっている違いです。

shikumika.org

参考情報

PowerQueryで列ごとの比較結果を追加例

列ごとの比較を結果追加する場合は、「条件列の追加」を活用します。

下図は、前回と今回の列(「設置場所」という項目)を比較し、一致しなければ「変更あり」と表示する設定です

前回と今回の列を比較し、一致しなければ「変更あり」と表示する設定です

「条件列の追加」の設定例

上記を実施すると、下図のようなアウトプットが出力されます(右端に列を追加)。

一致しなかった行に変更ありと明示されています

PowerQueryで列ごとの比較結果を追加のアウトプットイメージ

条件列はIF文を利用し、次のような設定も可能です。

shikumika.org

Excelの条件付き書式を使用した比較例

Excelの条件付き書式の機能で差異に色付けも可能です。

以下は2つのシートを比較する方法ですが、PowerQueryで左右に結合後、同様に列を基準として比較することで色付けも可能です。

shikumika.org

以上、Power Queryでデータ比較のためにExcelシートを左右で結合する方法でした。