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: このテーブルには、 Date、 CountryID、Units の各フィールドが含 まれています。 CountryID は、 Countries テーブルの一意識別子を表す整数の値です。
国: このテーブルは、 フィールド ID と Country を含む参照テーブルです。 ID フィールドは、各レコードの一意の識別子を表します。
この例では、両方のテーブルをマージし、 Sales テーブルを左のテーブルに、 Countries テーブルを右側のテーブルとしてマージします。 結合は、次の列間で行われます。
| Sales テーブルのフィールド | [国] テーブルのフィールド |
|---|---|
| CountryID | ID |
目標は、次のようなテーブルを作成することです。ここで、国の名前は Sales テーブルの新しい Country 列として表示されます。 完全外部結合のしくみにより、左テーブルと右テーブルの両方のすべての行が、いずれかのテーブルにのみ表示されるかどうかに関係なく取り込まれます。
Date、CountryID、Sales テーブルから派生した Units、および Countries テーブルから派生した Country 列を含む最終的な完全外部結合テーブルのスクリーンショット。 スペインのデータを含む 5 行目が追加されましたが、その行には Date、CountryID、Units 列に null が含まれています。これらの値は Sales テーブルにスペインに存在しなかったためです。
完全外部結合を実行するには:
- Sales クエリを選択し、[クエリのマージ] を選択します。
- [ 差し込み印刷 ] ダイアログ ボックスの [ 差し込み印刷の右側のテーブル] で、[国] を選択 します。
- Sales テーブルで、CountryID 列を選択します。
- [ 国] テーブルで、[ ID ] 列を選択します。
- [ 結合の種類 ] セクションで、[ 完全外部結合 ] を選択します。
- [OK] を選択します。
注
Ctrl キーを押しながら列を選択することで、複数の列を結合できます。
ヒント
ダイアログ ボックスの下部にある "選択内容は、両方のテーブルの 5 行のうち 4 行に一致します" というメッセージを詳しく見てみましょう。このメッセージは、この操作から得られる結果を理解するために非常に重要です。
[国] テーブルには、ID が 4 の Country Spain がありますが、Sales テーブルに CountryID 4 のレコードはありません。 そのため、一致するものが見つかったのは、右側のテーブルの 4 行のうち 3 行のみです。 左側のテーブルの行が一致していない右のテーブルのすべての行がグループ化され、出力テーブルの新しい行に表示され、左側のテーブルのフィールドの値は表示されません。
マージ操作の後に新しく作成された [国] 列で、[ 国 ] フィールドを展開します。 [元の列名を プレフィックスとして使用 する] チェック ボックスはオンにしないでください。
この操作を実行した後、次の図のようなテーブルを作成します。
Date、CountryID、Sales テーブルから派生した Units、および Countries テーブルから派生した Country 列を含む、完全外部結合の最終テーブルを示すスクリーンショット。 スペインのデータを含む 5 行目が追加されましたが、その行には Date、CountryID、Units 列に null が含まれています。これらの値は Sales テーブルにスペインに存在しなかったためです。