内部結合
Power Query の [マージ] ダイアログ ボックスで使用できる結合の種類の 1 つは、内部結合であり、左右のテーブルからの一致する行のみが取り込まれます。 詳細: マージ操作の概要
図は、Date、CountryID、Units 列を含む左側のテーブルを示しています。 強調された CountryID 列には、行 1 と行 2 に 1、行 3 に 3、行 4 に 2 の値が含まれています。 右側のテーブルには、ID 列と Country 列が含まれています。 強調された ID 列には、行 1 の 3 (パナマを表す) と行 2 の 4 (スペインを表す) の値が含まれています。 最初の 2 つのテーブルの下にあるテーブルには、Date、CountryID、Units、Country 列が含まれていますが、パナマのデータ行は 1 行のみです。
この記事では、サンプル データを使用して、内部結合を使用してマージ操作を行う方法を示します。 この例のサンプル ソース テーブルは次のとおりです。
Sales: このテーブルには、日付、CountryID、Unitsフィールドが含まれます。 CountryID は、Countries テーブルの一意の識別子を表す整数値です。
Countries: このテーブルは、ID と Country のフィールドを含む参照テーブルです。 ID フィールドは、各レコードのユニーク識別子を表します。
この例では、Sales テーブルを左のテーブルに、Countries テーブルを右側のテーブルとして、両方のテーブルをマージします。 結合は、次の列間で行われます。
Sales テーブルのフィールド | 「Countries」テーブルのフィールド |
---|---|
CountryID | 身分証明書 |
目標は、次のようなテーブルを作成することです。ここで、国の名前は、Sales テーブルの新しい Country 列として表示されます。 内部結合のしくみにより、左と右の両方のテーブルの一致する行のみが取り込まれます。
内部結合を実行するには:
- Sales のクエリを選択し、[クエリのマージ] を選択します。
- [マージ] ダイアログ ボックスの [マージ用の右テーブル] で [Countries] を選択します。
- Sales テーブルで、CountryID 列を選択します。
- [国] テーブルで、ID 列を選択します。
- [結合の種類] セクションで、[内部] を選択します。
- [OK] を選択します。
ヒント
ダイアログ ボックスの下部にある "選択内容は両方のテーブルから 1 行に一致する" というメッセージを詳しく見てみましょう。このメッセージは、この操作から得られる結果を理解するうえで非常に重要です。
Sales テーブルでは、CountryID が 1 と 2 ですが、どちらの値も Countries テーブルには見つかりません。 そのため、左側の (最初の) テーブルで 4 行のうち 1 行しか見つかりません。
Countries テーブルには、Country スペイン(ID 4)が登録されていますが、Sales テーブルには CountryID 4 のレコードが存在しません。 したがって、右側 (2 番目) のテーブルから 2 つの行のうちの 1 つだけが一致するものが見つかりました。
新しく作成した [国] 列で、[国] フィールドを展開します。 [元の列名をプレフィックスとして使用します] チェック ボックスをオンにしないでください。
この操作を実行すると、結果のテーブルは次の図のようになります。