マージ クエリの概要

マージ クエリ操作では、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で使用できる結合の種類について説明します。

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

あいまい一致

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

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