Left Anti Join
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 列が含まれています。 このテーブルには 3 つの行があり、2 つの行には CountryID 1 のデータが、1 つの行には CountryID 2 のデータが含まれています。 残りの CountryID はいずれも右テーブル内のいずれの国とも一致していないため、マージされたテーブルの Country 列の行はすべて null を含んでいます。
この記事では、サンプル データを使用して、左反結合を使用してマージ操作を実行する方法を示します。 この例のサンプル ソース テーブルは、次のとおりです。
Sales: このテーブルには、フィールド Date、CountryID、Units が含まれます。 CountryID は、Countries テーブルの一意の識別子を表す整数値です。

Countries: このテーブルは、フィールド id および Country を持つ参照テーブルです。 id フィールドは、各レコードの一意の識別子を表します。

この例では、Sales テーブルを左テーブルとし、Countries テーブルを右テーブルとして、両方のテーブルをマージします。 結合は、次の列間で行います。
| Sales テーブルのフィールド | Countries テーブルのフィールド |
|---|---|
| CountryID | ID |
目標は、右テーブルのいずれの行とも一致しない左テーブルの行のみが維持される次のようなテーブルを作成することです。
Date、CountryID、Units、および Country 列ヘッダーを持ち、Country 列の値がすべて null である 3 行のデータを含む左反結合の最終テーブル。
左反結合を実行するには
- Sales のクエリを選択し、 [クエリのマージ] を選択します。
- [マージ] ダイアログ ボックスの [マージ用の右テーブル] で [Countries] を選択します。
- Sales テーブルで、CountryID 列を選択します。
- Countries テーブルで id 列を選択します。
- [結合の種類] セクションで、 [左反] を選択します。
- [OK] を選択します。
![前の左反結合手順に従った結果を示す [マージ] ダイアログ ボックス 前の左反結合手順に従った結果を示す [マージ] ダイアログ ボックス。](images/me-merge-operations-left-anti-merge-window.png)
ヒント
ダイアログ ボックスの下部に表示される [選択範囲では、最初のテーブルの 4 行中 1 行を除外します] というメッセージを見てください。 このメッセージは、この操作によって得られる結果を理解するために重要です。
Sales テーブルには、CountryID 1 と 2 がありますが、それらのいずれも Countries テーブルにはありません。 そのため、左 (最初の) テーブルでは 4 行中 1 行のみの一致が見つかりました。
Countries テーブルでは、Country Spain で id は 4 ですが、Sales テーブルには CountryID 4 のレコードはありません。 そのため、右 (2 番目の) テーブルでは 2 行中 1 行のみの一致が見つかりました。
新しく作成した Countries 列から、Country フィールドを展開します。 [元の列名をプレフィックスとして使用します] チェック ボックスをオンにしないでください。

この操作を実行すると、次の図のようなテーブルが作成されます。 新しく展開された Country フィールドには値がありません。 これは、左反結合では右テーブルから値が取り込まれないためです (左テーブルからの行だけが保持されます)。
Date、CountryID、Units、および Country 列ヘッダーを持ち、Country 列の値がすべて null である 3 行のデータを含む最終的なテーブル。