次の方法で共有


内部結合

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: このテーブルには、日付CountryIDUnitsフィールドが含まれます。 CountryID は、Countries テーブルの一意の識別子を表す整数値です。

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

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

    行 1 で ID が 3、行 2 が 4 に設定され、Country が行 1 でパナマ、2 行目にスペインが設定されている Countries テーブルのスクリーンショット。

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

Sales テーブルのフィールド 「Countries」テーブルのフィールド
CountryID 身分証明書

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

Date、CountryID、Units、Country 列ヘッダーを含む最終的な内部結合テーブルと、その国のパナマの 1 行のデータのスクリーンショット。

内部結合を実行するには:

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

前の内部結合手順の結果を示すマージ ダイアログのスクリーンショット。

ヒント

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

Sales テーブルでは、CountryID が 1 と 2 ですが、どちらの値も Countries テーブルには見つかりません。 そのため、左側の (最初の) テーブルで 4 行のうち 1 行しか見つかりません。

Countries テーブルには、Country スペイン(ID 4)が登録されていますが、Sales テーブルには CountryID 4 のレコードが存在しません。 したがって、右側 (2 番目) のテーブルから 2 つの行のうちの 1 つだけが一致するものが見つかりました。

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

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

この操作を実行すると、結果のテーブルは次の図のようになります。

Date、CountryID、Units、Country 列ヘッダーを含む最終テーブルのスクリーンショット。パナマの国の 1 行のデータです。