内部結合

Power Query の [ マージ ] ダイアログボックスで使用できる結合の種類の1つに、 内部結合 があります。これにより、左テーブルと右テーブルの両方から一致する行のみが表示されます。 詳細情報: マージ操作の概要

内部結合の例。

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

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

  • Sales: このテーブルには、 DateCountryID、および Units というフィールドが含まれています。 CountryID country テーブルの一意の識別子を表す整数値です。

    Date、CountryID、および Units 列を含む Sales テーブルで、CountryID を1に設定し、行3で3を、行4に2を設定します。

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

    行2で id が3に設定されている country テーブルでは、行1と国2ではパナマに設定されています。

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

Sales テーブルのフィールド Country テーブルのフィールド
CountryID id

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

内部結合最終テーブル Date、CountryID、Units、Country 列ヘッダー、および国パナマの1行のデータ。

内部結合を実行するには

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

[マージ] ダイアログボックス。前の内部結合プロシージャの結果が表示されます。

ヒント

ダイアログボックスの下部に表示される [選択内容は最初のテーブルの4行のうち1行に一致します] と [2 番目のテーブルの行のうち1行が一致する] というメッセージが表示されます。 このメッセージは、この操作によって得られる結果を理解するために重要です。

Sales テーブルでは、 CountryID は1と2ですが、これらの値はどちらも country テーブルにはありません。 このため、一致には左 (最初の) テーブルの4つの行のうちの1つだけが見つかりました。

Country テーブルで は、 id が4の のスペインがありますが、 Sales テーブルの CountryID が4のレコードはありません。 そのため、右側 (2 番目) のテーブルの2つの行のうちの1つだけが一致を検出しました。

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

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

この操作を実行した後、次の図のようなテーブルを作成します。

Date、CountryID、Units、Country の各列ヘッダーを含む最終テーブルと、国パナマの1行のデータ。