完全外部結合

Power Query の [マージ]ダイアログ ボックスで使用できる結合の種類の1 つは、完全外部結合です。これは、左と右の両方のテーブルからのすべての行を取り込むです。 詳細については、「マージ 操作の概要」を参照してください。

完全外部結合の例。

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

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

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

    Date、CountryID、Units 列を含む Sales テーブル。CountryID は行 1 と行 2 で 1、行 3 では 3、行 4 では 2 に設定されます。

  • : これは、フィールド ID と Country を持 つ参照****テーブルですid フィールド は、各レコードの一意の識別子を表します。

    ID 列と Country 列を含む Country テーブル。行 1 では id が 1、行 2 が 2、行 3 が 3、行 4 が 4 に設定されています。

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

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

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

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

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

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

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

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

ヒント

ダイアログ ボックスの下部にあるメッセージを詳しく見ると、"選択範囲は最初のテーブルから 4 行中 4 行、2 番目のテーブルから 4 行中 3 行に一致します。 このメッセージは、この操作から得られる結果を理解するために重要です。

Country テーブル では、Country スペインID は 4 ですが 、Sales テーブルには CountryID 4 のレコードはありません。 これは、右側のテーブルの 4 行中 3 行だけが一致を検出した理由です。 左側のテーブルの一致する行がない右側のテーブルのすべての行がグループ化され、出力テーブルの新しい行に表示され、左側のテーブルのフィールドの値は表示されません。

完全外部結合の左側のテーブルにスペインの一致する行はないので、スペインの Date CountryID と Units の値は null に設定されます。

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

Country のテーブル列を展開します。

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

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

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