前回に引き続き、今回も「クエリのマージ」の使い方を紹介していこう。今回は、本テーマの主題ともいえる「2つのデータ表を結合するときの操作手順」について解説する。VLOOKUPやXLOOKUPと同様の処理を実現できるので、ぜひ使い方を覚えておこう。
結合するクエリの準備
前回は、2つのデータ表をそれぞれ「クエリ」として取得するところまで解説した。今回は、その続編として、実際にデータ表を結合するときの操作手順を解説していこう。
まずは、これまでの処理内容を“おさらい”しておこう。以下の図は、ある24時間ジムの「4月1日の利用状況」を記録したデータ表だ。ただし、このままでは「誰が利用したのか?」を把握できない。
「誰が利用したのか?」を把握するには、会員情報をまとめた別のExcelファイルを参照して、それぞれのIDをもとに氏名などの情報を照らし合わせる必要がある。
このような場合は、2つのExcelファイルを組み合わせたデータ表を作成すると、内容を理解しやすい表に仕上げることができる。これをパワークエリで実現するために、それぞれのデータ表を「クエリ」として取得した。
「会員情報」のクエリには、会員情報をまとめたデータ表が取得されている。ちなみに、こちらは「接続専用のクエリ」として扱われている。
一方、「4月1日の記録」のクエリには、4月1日の利用状況を記録したデータ表が取得されている。こちらは「通常のクエリ」として扱われている。
ここまでが前回の連載で紹介した内容となる。よくわからない方は、先に第46回の連載を一読してから本稿を読み進めていくとよいだろう。
「クエリのマージ」の実行手順
それでは、「クエリのマージ」を使って2つのデータ表を結合するときの操作手順を解説していこう。「4月1日の記録」のクエリを選択し、「ホーム」タブにある「クエリのマージ」をクリックする。
以下の図のような設定画面が表示されるので、最初に「どのクエリからデータをピックアップするか?」を指定する。今回の例の場合、会員情報をまとめた表からデータをピックアップするので「会員情報」のクエリを選択すればよい。
選択したクエリ(データ表)のプレビューが表示される。続いて、「どの列を基準にデータを照合するか?」を指定する。今回の例では、それぞれの「ID」の列を基準にデータを照合すればよい。上部に表示されているデータ表にある「ID」の列を選択する。
同様に、下部に表示されているデータ表でも「ID」の列を選択する。
なお、今回の例では両者とも「ID」という列名になっているが、これらの列名は同じでなくても構わない。対応するデータが入力されている列であれば、列名が異なっていても問題なく「クエリのマージ」を実行できる。
続いて「結合の種類」を指定する。今回の例の場合、この設定は「左外部」のままで構わない。すべて指定できたら「OK」ボタンをクリックする。
「4月1日の記録」のデータ表に「会員情報」のデータが追加される。ただし、現時点ではデータがTableとして1列に集約されている。
結合されたデータ表(Table)の展開
続いては、Tableとして集約されている「会員情報」のデータから必要なデータだけをピックアップする作業を進めていこう。この作業は「展開」と呼ばれている。
「会員情報」の列の右端に表示されているボタンをクリックし、展開する列にチェックを入れる。今回は「氏名」と「性別」の列を展開するように指定した。必要な列をすべてチェックできたら「OK」ボタンをクリックする。
データ表の右端に「氏名」と「性別」の列が展開される。これで各IDに対応する「氏名」と「性別」をピックアップできたことになる。
展開された列の名前は「取得元のクエリ名.列名」という形になっている。このままでも構わないが、もっとシンプルな名前に変更しておこう。ここでは「氏名」と「性別」という列名に変更した。
続いて、「氏名」と「性別」の列を適当な位置へ並べ替える。この操作は、各列を左右にドラッグ&ドロップすると実行できる。
Tableとして取得したデータを展開した際に、データの並び順が変更されてしまうケースもある。今回の例では、「入館時刻」の小さい順(早い順)に並んでいたデータがランダムな順番に並べ替えられてしまっている。
これを元の並び順に戻しておこう。「入館時刻」の列を選択し、「昇順で並べ替え」をクリックする。これでデータを「入館時刻」の昇順に並べ替えることができる。
以上で「列のマージ」を使ったデータ表の結合は完了となる。VLOOKUPやXLOOKUPと同様の処理を、パワークエリでも実現できることを確認できたと思う。
むしろ、「パワークエリの方が簡単かも……」と感じた方も多いのではないだろうか? VLOOKUPやXLOOKUPといった関数は特に難しいものではないが、使用するには「引数の指定方法」を覚えておく必要がある。さらに「別のExcelファイルからデータをピックアップする方法」も学んでおかなければならない。これらを、そのつど調べながら作業しているようでは、とても「スムーズに作業を進められる」とは言えない。
一方、パワークエリの場合は、それぞれのデータ表をクエリとして読み込み、「クエリのマージ」を実行するだけ。XLOOKUPなどの関数と比べて、より直感的に作業を進めることができる。オートフィルを使って関数をコピーする手間も必要ない。「何も知らなくても実行できる」というほど簡単ではないが、ひとつの選択肢として覚えておく価値は十分にあるはずだ。
データ表をExcelに出力
念のため、先ほどのデータ表をExcelに出力した例も紹介しておこう。出力方法はいつもと同じで、「閉じて読み込む」のアイコンをクリックするだけ。
データ表がExcelに出力(すでに出力されている場合は更新)される。これで「誰がジムを利用したのか?」を即座に把握できるようになる。
ちなみに、このデータ表には「ID」が同じデータが2回登場している。つまり、同じ日に2回、ジムを利用した会員(岸 剛さん)がいる訳だ。このように同じデータが何回も登場する場合でも、問題なくデータを取得できるようになっている。
以上が「クエリのマージ」の基本的な使い方となる。なお、今回の連載では「結合の種類」について詳しく説明しなかったが、この設定を変更することにより「どのようにデータを結合するか?」を指定することも可能となっている。ということで、次回は2つのデータ表から「重複しているデータ」だけをピックアップする方法を紹介していこう。