マージ クエリの概要

マージ クエリ操作では、1 つまたは複数の列の一致する値に基づいて、2 つの既存のテーブルを結合します。 必要な出力に応じて、さまざまな種類の結合を使用できます。

一番上の 2 つの空のテーブルが、左側のテーブルのすべての列と右側のテーブルから 1 つの列を含む一番下のテーブルにマージされていることを示す図。

クエリのマージ

クエリの マージ コマンドは、[ ホーム ] タブの [結合 ] グループにあります。 ドロップダウン リスト メニューには、次の 2 つのオプションがあります。

  • クエリのマージ: 選択したクエリを マージ 操作の左側のテーブルとして、[マージ] ダイアログ ボックスを表示します。
  • 新しいクエリのマージ: マージ 操作用に事前に選択されたテーブルを含まない [マージ] ダイアログ ボックスが表示されます。

マージ クエリ オプションが強調された [Power Query ホーム] タブのスクリーンショット。

マージするテーブルを識別する

マージ操作には、次の 2 つのテーブルが必要です。

  • マージ用の左テーブル: 画面の上から下に向かって最初に選択するもの。
  • 結合用の右側のテーブル: 画面の上から下に向かって 2 つ目の選択肢。

左または右のテーブルのエントリがない [マージ] ダイアログのスクリーンショット。

使用する正しい結合の種類を選択すると、テーブルの位置 (左または右) が非常に重要になります。

列のペアを選択する

左と右の両方のテーブルを選択した後、テーブル間の結合を駆動する列を選択できます。 次の例では、次の 2 つのテーブルがあります。

  • Sales: CountryID フィールドは、 Countries テーブルのキーまたは識別子です。
  • : この表には、 CountryID と国の名前が含まれています。

左右のテーブルと列が選択された [マージ] ダイアログ ボックス。

マージダイアログのスクリーンショット。マージ用の左テーブルが Sales に設定され、CountryID 列が選択され、右テーブルが Countries に設定され、CountryID 列が選択されています。

目標は、両方のテーブルの CountryID 列を使用してこれらのテーブルを結合するため、各テーブルから CountryID 列を選択することです。 選択を行うと、ダイアログ ボックスの下部に推定一致数を含むメッセージが表示されます。

この例では両方のテーブルで同じ列ヘッダーを示していますが、一致する列名はマージ操作の要件ではありません。 列ヘッダーはテーブル間で一致する必要はありません。 ただし、列は同じデータ型である必要があることに注意してください。そうしないと、マージ操作によって正しい結果が得られない可能性があります。

列を選択するときに Ctrl キー を押して、複数の列を選択して結合を実行することもできます。 この場合、列が選択された順序は、列見出しの横に 1 から始まる小さい数字で表示されます。

この例では、 Sales テーブルと Countries テーブルがあります。 各テーブルには CountryID 列と StateID 列があり、両方の列間の結合に対してペアにする必要があります。

まず Sales テーブルで CountryID 列を選択し、Ctrl キーを押してから StateID 列を選択します。 (このアクションでは、列見出しの小さい数値が表示されます)。次に、 Countries テーブルで同じ選択を実行します。

左右のテーブルの設定を含む [マージ] ダイアログ ボックス。

マージ ダイアログのスクリーンショット。マージ用の左テーブルが [Sales] に設定され、[CountryID] 列と [StateID] 列が選択され、マージ用の右テーブルが [国] に設定され、[CountryID] 列と [StateID] 列が選択されています。 結合の種類は左外部に設定されます。

結合に複数の列を選択する場合、各テーブルの列を選択する順序が一致する必要があります。 たとえば、左側のテーブルで選択されている最初の列は、右側のテーブルで選択された最初の列と一致します。 それ以外の場合は、正しくない結合結果を確認できます。

列ペアの候補を使用する

[マージ] ダイアログで左右のテーブルを選択すると、ダイアログの右上隅にある電球アイコンを確認できます。 この電球は、両方のテーブル間の列ペア マッピングに関する推奨事項があるかどうかを示します。

多くの提案が存在する可能性がありますが、このシナリオでは、Sales テーブルの CountryID 列を Countries テーブルの CountryID 列にマップする機能によって提案が 1 つだけ存在します。 これを選択すると、列とペアのマッピングがダイアログに自動的に適用されます。

Sales テーブルと Countries テーブルの CountryID 列の推奨されるペアリングを示す [マージ] ダイアログのスクリーンショット。

列ペアのマッピングのみが提案されます。 結合の種類やあいまい一致の構成など、このダイアログのその他のオプションは、この提案の対象範囲外です。

結合された新しいテーブル列を展開または集計する

[マージ] ダイアログ ボックスで [OK] を選択すると、クエリのベース テーブルに左側のテーブルのすべての列が表示されます。 また、適切なテーブルと同じ名前の新しい列が追加されます。 この列には、右側のテーブルに対応する値が行ごとに保持されます。

ここから、この新しいテーブル列のフィールド (右側のテーブルのフィールド) を展開または集計することができます。

[テーブル列] メニューを展開します。

現在、Power Query Online では、そのインターフェイスでのみ拡張操作が提供されます。 集計するオプションは、Power Query Online ではまだ使用できません。

結合の種類

結合の種類は、マージ操作の実行方法を指定します。 次の表では、Power Queryで使用できる結合の種類について説明します。

結合の種類 アイコン 説明
左外部結合 左側のテーブルのすべての行 (右側のテーブルの行と一致)
右外部結合 右側のテーブルのすべての行 (左側のテーブルの行と一致)
完全外部結合 両方のテーブルのすべての行
内部結合 両方のテーブルの一致する行のみ
左アンチ結合 左側のテーブルの行のみ
右結合のアンチ結合 右側のテーブルの行のみ

あいまい一致

あいまいマージを使用して、列を比較するときにあいまい一致アルゴリズムを適用し、マージするテーブル間で一致を検索します。 この機能を有効にするには、[マージ] ダイアログ ボックスの [あいまい一致を使用してマージを実行する] チェック ボックスをオンにします。 [ あいまい一致] オプション を展開して、使用可能なすべての構成を表示します。

あいまい一致は、テキスト列に対するマージ操作でのみサポートされます。 詳細については、「あいまい一致がPower Queryを参照してください。