次の方法で共有


完全外部結合

Power Query の [マージ ] ダイアログで使用できる結合の種類の 1 つは 完全外部結合であり、左右のテーブルのすべての行が取り込まれます。 詳細情報: マージ操作の概要

完全外部結合の例。

Date、CountryID、Units 列を含む左側のテーブルを示すスクリーンショット。 強調された CountryID 列には、行 1 と行 2 に 1、行 3 に 3、行 4 に 2 の値が含まれています。 右側のテーブルには、ID 列と Country 列が含まれています。 強調された ID 列には、行 1 の 1 (米国を表す)、行 2 (カナダを表す) の 2、行 3 の 3 (パナマを表す)、4 (スペインを表す) の値が含まれます。 最初の 2 つのテーブルの下のテーブルには、Date、CountryID、Units、Country 列が含まれています。 すべての行は、CountryID 値に従って数値順に並べ替えられます。 CountryID 番号に関連付けられている国が [国] 列に表示されます。 スペインの国 ID が左側のテーブルに含まれていないため、新しい行が追加され、この行の日付、国 ID、および単位の値が null に設定されます。

この記事では、サンプル データを使用して、完全外部結合を使用してマージ操作を行う方法を示します。 この例のサンプル ソース テーブルは次のとおりです。

  • Sales: このテーブルには、 DateCountryID、Units の各フィールドが含 まれていますCountryID は、 Countries テーブルの一意識別子を表す整数の値です。

    Date、CountryID、Units の各列を含む Sales テーブルのスクリーンショット。CountryID は行 1 と 2、行 3 は 3、行 4 は 2 に設定されています。

  • : このテーブルは、 フィールド IDCountry を含む参照テーブルです。 ID フィールドは、各レコードの一意の識別子を表します。

    ID 列と Country 列を含む Countries テーブルのスクリーンショット。行 1 の ID は 1、行 2 は 2、行 3 は 3、行 4 は 4 に設定されています。

この例では、両方のテーブルをマージし、 Sales テーブルを左のテーブルに、 Countries テーブルを右側のテーブルとしてマージします。 結合は、次の列間で行われます。

Sales テーブルのフィールド [国] テーブルのフィールド
CountryID ID

目標は、次のようなテーブルを作成することです。ここで、国の名前は Sales テーブルの新しい Country 列として表示されます。 完全外部結合のしくみにより、左テーブルと右テーブルの両方のすべての行が、いずれかのテーブルにのみ表示されるかどうかに関係なく取り込まれます。

完全外部結合操作の最終テーブル。

Date、CountryID、Sales テーブルから派生した Units、および Countries テーブルから派生した Country 列を含む最終的な完全外部結合テーブルのスクリーンショット。 スペインのデータを含む 5 行目が追加されましたが、その行には Date、CountryID、Units 列に null が含まれています。これらの値は Sales テーブルにスペインに存在しなかったためです。

完全外部結合を実行するには:

  1. Sales クエリを選択し、[クエリのマージ] を選択します。
  2. [ 差し込み印刷 ] ダイアログ ボックスの [ 差し込み印刷の右側のテーブル] で、[国] を選択 します
  3. Sales テーブルで、CountryID 列を選択します。
  4. [ 国] テーブルで、[ ID ] 列を選択します。
  5. [ 結合の種類 ] セクションで、[ 完全外部結合 ] を選択します。
  6. [OK] を選択します。

前の完全外部結合手順に従った結果を示す [マージ] ダイアログ ボックス。

Ctrl キーを押しながら列を選択することで、複数の列を結合できます。

ヒント

ダイアログ ボックスの下部にある "選択内容は、両方のテーブルの 5 行のうち 4 行に一致します" というメッセージを詳しく見てみましょう。このメッセージは、この操作から得られる結果を理解するために非常に重要です。

[国] テーブルには、ID が 4 の Country Spain がありますが、Sales テーブルに CountryID 4 のレコードはありません。 そのため、一致するものが見つかったのは、右側のテーブルの 4 行のうち 3 行のみです。 左側のテーブルの行が一致していない右のテーブルのすべての行がグループ化され、出力テーブルの新しい行に表示され、左側のテーブルのフィールドの値は表示されません。

完全外部結合の左側のテーブルにスペインの一致する行がないことを示すスクリーンショット。そのため、スペインの Date、CountryID、Units の値は null に設定されています。

マージ操作の後に新しく作成された [国] 列で、[ ] フィールドを展開します。 [元の列名を プレフィックスとして使用 する] チェック ボックスはオンにしないでください。

[国] 列が選択されている [テーブルの展開] オプションのスクリーンショット。

この操作を実行した後、次の図のようなテーブルを作成します。

完全外部結合テーブルの最終形。

Date、CountryID、Sales テーブルから派生した Units、および Countries テーブルから派生した Country 列を含む、完全外部結合の最終テーブルを示すスクリーンショット。 スペインのデータを含む 5 行目が追加されましたが、その行には Date、CountryID、Units 列に null が含まれています。これらの値は Sales テーブルにスペインに存在しなかったためです。