英語で読む

次の方法で共有


内部結合

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

内部結合の例。

図は、Date、CountryID、Units 列を含む左側のテーブルを示しています。 強調表示された CountryID 列の行 1 と行 2 には値 1、行 3 には値 3、行 4 には値 2 があります。 右側のテーブルには、ID 列と Country 列が含まれています。 強調表示された ID 列には、行 1 に 3 (パナマを示す)、行 2 に 4 (スペインを示す) の値が含まれています。 最初の 2 つのテーブルの下のテーブルには、Date、CountryID、Units、Country の列が含まれていますが、Panama のデータ行は 1 つのみです。

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

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

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

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

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

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

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

目標は、国名が 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 つだけ見つかりました。

[国] テーブルには ID 4 の Country Spain がありますが、Sales テーブルには CountryID が 4 のレコードがありません。 したがって、右側 (2 番目) のテーブルから 2 つの行のうちの 1 つだけが一致するものが見つかりました。

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

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

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

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