次の方法で共有


クエリのマージの概要

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

上部の 2 つの空のテーブルが、下のテーブルにマージされた状態を示す図。左側のテーブルのすべての列と、右側のテーブルの 1 つの列が含まれます。

クエリのマージ

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

  • [クエリのマージ]: [マージ] ダイアログ ボックスが表示され、選択したクエリがマージ操作の左側のテーブルとして示されます。
  • [新規としてクエリをマージ]: [マージ] ダイアログ ボックスが表示され、マージ操作の対象として事前に選択されテーブルはありません。

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

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

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

  • マージの左側のテーブル: 画面の上側にある 1 番目の選択。
  • マージの右側のテーブル: 画面の下側にある 2 番目の選択。

左右いずれのテーブルも未入力になっている [マージ] ダイアログのスクリーンショット。

Note

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

列のペアを選択する

左と右両方のテーブルを選んだ後、テーブル間の結合を主導する列を選択できます。 次の例には、2 つのテーブルがあります。

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

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

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

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

Note

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

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

この例では、Sales および Countries テーブルを使用します。 各テーブルに CountryID 列と StateID 列があり、両方の列の結合でこれらをペアにする必要があります。

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

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

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

Note

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

列ペアの候補を使用する

[マージ] ダイアログで左右のテーブルを選択するときに、ダイアログの右上隅にある電球アイコンをチェックして、両テーブル間の列ペア マッピングに関して提案があるかどうかを確認できます。

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

Sales テーブルと Countries テーブルに CountryID 列のペア設定の提案を示すダイアログのスクリーンショット。

Note

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

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

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

ここから、この新しいテーブル列のフィールドを展開または集計できます。これは、右テーブルのフィールドになります。

テーブル列展開メニュー。

Note

現在、Power Query Online エクスペリエンスのインターフェイスでは展開操作だけが提供されています。 集計オプションは、今年の後半に追加される予定です。

結合の種類

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

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

あいまい一致

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

Note

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