パワークエリの「クエリの追加」・「追加」コマンドのサムネイル
AさんAさん

2019年と2020年の社員マスタを1つの表にまとめたいです。
Power Queryエディター上でこうした作業も自動化できますか?

森田森田

自動化できますよ!
その場合、Power Queryエディター上の「クエリの追加」コマンドワークシート上の「追加」コマンドを使えば良いです!
では、詳細を解説していきますね。

Excelステップ講座

解説動画:【パワークエリ#7】データ転記・連結テクニック – 複数の表データを結合し、一つに集約する作業を自動化する(クエリのマージ/クエリの追加)

この記事の内容は下記の動画でも解説しています。

コメント欄の「データ連結(クエリの追加)」の部分をクリックすると該当の解説へジャンプできますよ!

はじめに

この記事はパワークエリの概要を把握していることが前提です。

参考記事

パワークエリの概要については、以下の記事をご参照ください。

「クエリの追加」・「追加」の使いどころ

「クエリの追加」・「追加」コマンドは、クエリの新規作成ステップのうち、STEP2の「取得データを整形/加工(Transform)」に該当する機能です。

「クエリのマージ」・「マージ」のスコープ

機能自体は、ワークシート上の関数の「VSTACK」と似ています。
VSTACKの詳細は、別記事にまとめる予定。

一連の整形作業の中で、別表の行データ(レコード)を連結したい場合に「クエリの追加」・「追加」コマンドを使いましょう。

「クエリの追加」・「追加」の使いどころ

「クエリの追加」・「追加」コマンドを活用することで、列名を基準に別表の行データ(レコード)の連結を自動化できます。

使用イメージ

「クエリの追加」コマンドで「社員マスタ_2019」テーブルへ「社員マスタ_2020」テーブルのレコードを追加したイメージが以下です。

パワークエリの「クエリの追加」・「追加」コマンドの使用イメージ

Power Queryエディター上で別表の行データを連結したステップを登録できました。
「クエリの追加」コマンドの場合、デフォルトのステップ名は「追加されたクエリ」(クエリ内で同じステップ名が複数ある場合は連番が付加)。
「追加」コマンドの場合、デフォルトのステップ名は「ソース」。

後は、クエリ新規作成ステップのSTEP2で必要な他ステップを登録したら、STEP3を行いましょう。

これにより、クエリに記録した「クエリの追加」・「追加」コマンドのステップを自動化できます。
「クエリの追加」・「追加」コマンドのステップ登録後、連結対象のテーブル名や列名を変更すると、別表側のクエリがエラーになり、それと連動して「クエリの追加」・「追加」コマンドのステップもエラーになるため注意(別表側のクエリのエラー解消が必要)。

参考記事

クエリの新規作成ステップのSTEP2に役立つ各種コマンドの詳細は「パワークエリ(Power Query)の記事一覧」を、STEP3の手順はパワークエリの概要記事をご参照ください。


ステップ登録手順

「クエリの追加」・「追加」コマンドのステップ登録手順は同じ要領ですが、データ追加(連結)をクエリ内で行うか、新しいクエリで行うかで使い分けます。

なお、それぞれのステップ登録の前に、連結対象となる表のクエリの準備が必要です。
上記の対象の表がデータ整形不要な場合、クエリの新規作成ステップのSTEP1・3のみ登録しておく(詳細はパワークエリ概要記事を参照)。

「クエリの追加」・「追加」コマンドのステップ登録手順の詳細を順番に解説します。

「クエリの追加」コマンド

クエリ内でデータ追加したい場合、「クエリの追加」コマンドを使います。
ベースのクエリ(A)の1ステップとして、別表のクエリ(B)を追加するケース。

「クエリの追加」コマンドを登録したい場合は、以下の手順となります。

「クエリの追加」コマンドのステップ登録手順

  1. リボン「ホーム」タブをクリック
  2. 「クエリの追加」をクリック
  3. 連結するテーブル数を選択
    ※今回は「2つのテーブル」
  4. 連結対象のクエリを選択
    ※今回は「社員マスタ_2020」クエリ
  5. 「OK」をクリック

手順③で「3つ以上のテーブル」を選択した場合の詳細は、本記事で後述。
手順④の選択順に応じて、連結後のテーブル順となる。
※例:「社員マスタ_2019」クエリ→「社員マスタ_2020」クエリの順で選択した場合、2019のレコードの下に2020のレコードが追加される。

「追加」コマンド

新しいクエリでデータ追加したい場合、「追加」コマンドを使います。
新しいクエリ(C)で、ベースのクエリ(A)へ別表のクエリ(B)を連結するケース(クエリAに連結結果は反映されない)。

「追加」コマンドを登録したい場合は、以下の手順となります。

「追加」コマンドのステップ登録手順

  1. ワークシート上のリボン「データ」タブ
  2. 「データの取得」をクリック
  3. 「クエリの結合」をクリック
  4. 「追加」をクリック
  5. 連結するテーブル数を選択
    ※今回は「2つのテーブル」
  6. 連結対象のクエリを選択
    ※今回は「社員マスタ_2019」クエリと「社員マスタ_2020」クエリ
  7. 「OK」をクリック

手順⑤で「3つ以上のテーブル」を選択した場合の詳細は、本記事で後述。
手順⑥の選択順に応じて、連結後のテーブル順となる。
※例:「社員マスタ_2019」クエリ→「社員マスタ_2020」クエリの順で選択した場合、2019のレコードの下に2020のレコードが追加される。

【参考】「3つ以上のテーブル」の場合

「追加」ダイアログの冒頭のオプションボタンの選択肢を「3つ以上のテーブル」にした場合、以下のような画面になります。

「追加」ダイアログの「3つ以上のテーブル」の場合

「利用可能テーブル」ボックス内で連結したいテーブルを選択し、「追加>>」ボタンをクリックすることで、「追加するテーブル」ボックスに連結対象のクエリがセットされます。

問題なければ「OK」ボタンをクリックして確定しましょう。

なお、「利用可能テーブル」ボックス内で連結したいテーブルを選択する際、以下の対応をすると効率的です。

  • 連続するクエリを選択する場合:起点のクエリを選択後、「Shift」キーを押しながら終点クエリを選択(起点~終点の間のクエリも選択される)
  • 離れたクエリを選択する場合:「Ctrl」キーを押しながら該当のクエリを選択

誤ったクエリが「追加するテーブル」ボックスにセットされた場合は、該当のクエリを選択し、右側の「×」ボタンをクリックすれば連結対象から削除できます。

【応用】別レイアウトのデータ追加も可能

データ追加の対象は基本的に同一レイアウトのテーブル同士です。

ただし、別表で管理されている売上の目標値と実績値を比較したい等、列構成が完全一致ではないものの、部分的に同じ列名があるテーブル同士で連結したいというケースも「クエリの追加」・「追加」コマンドで対応可能です。

この場合、列名を基準にデータ追加されます。

別レイアウトのテーブル同士のデータ追加

1つの表に連結できたら、後は共通の列名で予実の数値を集計する等で活用できますね。
上記であれば、日付や氏名別で売上金額・売上目標額を集計等。

なお、実質は同じデータの列だったとしても、各テーブルの列名が一致していないと、別な列として連結されてしまうため、事前に列名を統一した上で、データ追加を行いましょう。

登録したステップの変更手順

「クエリの追加」・「追加」コマンドで登録したステップを後から変更する場合、以下の手順となります。

「クエリの追加」・「追加」コマンドのステップ変更手順

  1. 「追加されたクエリ」ステップ or 「ソース」ステップの歯車マークをクリック
  2. 任意の箇所を修正
  3. 「OK」をクリック

手順①のステップ名は、「クエリの追加」・「追加」コマンドのデフォルトの名前(自身でリネームしている場合は別表記)。
手順①はステップ名をダブルクリックでもOK。
手順①で起動した「追加」ダイアログは、ステップに設定した内容がセットされた状態。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_PowerQueryデータ整形_クエリの追加.xlsx

サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。

ブックを開いたら、「社員マスタ_2019」クエリを編集(Power Queryエディター起動)し、次の手順を実施してください(今までの解説のまとめです)。
ブック起動時、「セキュリティの警告」メッセージが表示された場合は「コンテンツの有効化」をクリック。

  1. リボン「ホーム」タブをクリック
  2. 「クエリの追加」をクリック
  3. 連結するテーブル数を選択
    ※今回は「2つのテーブル」
  4. 連結対象のクエリを選択
    ※今回は「社員マスタ_2020」クエリ
  5. 「OK」をクリック

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

「クエリの追加」・「追加」コマンドを活用することで、列名を基準に別表の行データ(レコード)の連結を自動化できます。

同じレイアウトで複数の表に分けて管理している場合、データ追加が必要なケースがあるため、ぜひ覚えておきましょう!

なお、パワークエリの各種テクニックは、私の拙著でも体系的に解説していますので、こちらも参考にしてみてください。


また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!

森田貢士の公式LINEへの友だち追加告知用バナー

ご参考になれば幸いですm(_ _)m

森田森田

「クエリの追加」・「追加」コマンドに慣れたら、複数の表の集約に役立つ他のコマンドもセットで覚えることをおすすめします。
具体的には、別表の列データを転記できる「クエリのマージ」・「マージ」コマンドです。
どちらも実務での利用頻度が高いので、ケースバイケースで使い分けできると効率的ですね。