左外部結合

Power Query の [マージ] ダイアログ ボックスで使用できる結合の種類の 1 つとして 左外部結合 があります。これは、左テーブルのすべての行を維持しながら、右テーブルから一致する行を取り込みます。 詳細情報: マージ操作の概要に関するページ

左外部結合の例。

図の左側には、Date、CountryID、Units の列を含むテーブルがあります。 強調表示された CountryID 列の行 1 と 2 には値 1 が、行 3 には 3 が、行 4 には 4 が含まれています。 右側のテーブルには、ID 列と Country 列が含まれています。 強調表示された ID 列には、1 行目に 値 1 (米国を示す)、2 行目には 2 (カナダを示す)、3 行目には 3 (パナマを示す) があります。 最初の 2 つのテーブルの下のテーブルには、Date、CountryID、Units、Country の列があります。 このテーブルには 4 つの行があります。上位 2 行には CountryID 1 のデータが含まれます。CountryID 3 の場合は 1 行、Country ID 4 の場合は 1 行です。 右テーブルには ID 4 が含まれていなかったため、Country 列の 4 行目の値には null が含まれています。

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

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

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

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

    左外部結合のサンプル Country テーブル。

    id が行 1 で 1、行 2 で 2、行 3 で 3 に設定され、Country が行 1 で USA、行 2 で Canada、行 3 で Panama に設定されている Countries テーブル。

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

Sales テーブルのフィールド Countries テーブルのフィールド
CountryID ID

目標は、CountryIDCountries テーブルに存在する限り、国名が Sales テーブルの新たな Country 列として表示される次のようなテーブルを作成することです。 左テーブルと右テーブル間に一致がない場合、null 値がその行のマージの結果となります。 次の図では、これは CountryID 4 に見られます。これは、Sales テーブルから取り込まれています。

Country 列が追加された、その列の 4 番目の行の値が null に設定された左外部結合の最終テーブル。

左外部結合を実行するには

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

上記の左外部結合手順の実施の結果を示す [マージ] ダイアログ ボックス。

新しく作成した Countries 列から Country フィールドを展開します。 [元の列名をプレフィックスとして使用します] チェック ボックスをオンにしないでください。

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

この操作を実行すると、次の図のようなテーブルが作成されます。

Country 列が追加された、その列の 4 番目の行の値が null に設定された最終テーブル。