これまでの連載でパワークエリを使った自動処理の“大まかな流れ”は説明できたと思う。とはいえ、通常のExcelとは全く違う使い方になるため、少し頭が混乱している方もいるだろう。そこで今回は、パワークエリの基本プロセスを復習しておこう。パワークエリを自由自在に使いこなせるように、まずは土台を固めておくことが大切だ。
データの取得元と出力先の関係
パワークエリは「ETL」と呼ばれるジャンルに分類されるツールとなる。ETLとは、データの抽出(Extract)、変換(Transform)、書き出し(Load)のことを指している。これらの処理をExcelで自動化するツールが「パワークエリ」だ。パワークエリの役割について、わかりやすく説明すると、
・外部からデータ表を取得する
・取得したデータ表を目的に合わせて加工する
・加工したデータ表をExcelに書き出す
という一連の流れを自動処理してくれるツールとなる。このことを踏まえながら、これまでに解説した内容を復習していこう。
まずは「取得元」と「出力先」の関係について。パワークエリでは、「取得元」と「出力先」の両方がExcelファイルになるケースが多い。これらのうち、クエリ(自動処理)は「出力先のExcelファイル」に保存される仕組みになっている。よって、クエリを作成・編集するときは、「出力先のExcelファイル」を開いて操作するのが基本となる。
これまでの連載では、
(1)フォルダー内にあるExcelファイルを結合して取得する
(2)取得したデータ表を最適な形に加工する
(3)加工したデータ表をExcelに出力する
という流れで解説を進めてきた。この場合、データの取得元は「フォルダー」になる。
このほかにも、さまざまな取得元を指定することが可能だ。単体のExcelファイルはもちろん、CSVやXML、JSONといった形式のファイルからデータを取得する、PDFやWebページ内にある「表」からデータを取得する、といった使い方にも対応している。
ここで覚えておくべきポイントは、パワークエリは「取得元ファイルに一切の影響を与えない」ということだ。取得元ファイルからデータを読み取るだけで、取得元ファイルそのものを書き換える機能はない。
このため、大切なデータが保管されているファイルであっても、安心してパワークエリを使用できる。「会員名簿」や「過去の取引履歴」のように、個人が勝手に編集してはいけないファイルから必要なデータを取得し、好きな形に加工して出力する、といった使い方が可能である。
このように、オリジナルのデータ(ファイル)を維持したまま、目的に合わせて「新しいデータ表」を作りだせることもパワークエリの利点といえる。
クエリの作成
それでは、具体的な作業の流れを“おさらい”していこう。今回は、単体のExcelファイルからデータを取得して加工する場合を例に、作業手順を紹介していく。
データの取得元は、「データ」タブにある「データの取得」コマンドで指定する。ここで取得元のファイル形式を選択し、取得元ファイルの保存場所(パス)を指定する。
参考までに、データの取得元に指定した「会員名簿.xlsx」の内容を紹介しておこう。このファイルには、会員の氏名、生年月日、性別、メールアドレス、電話番号、住所といった情報が記録されている。
データの取得方法を指定すると「Power Query エディター」が起動し、取得したデータ表がプレビューとして画面に表示される。
このデータ表を目的に合わせて加工していく。ここでは、今日が誕生日の会員に「おめでとうメール」を送信する場合を例に解説を進めていこう。この作業を行うには「今日が誕生日の会員」だけをピックアップしておく必要がある。よって、以下の処理手順でデータ表を加工するように「Power Query エディター」を操作した。
(1)「電話番号」や「住所」など、不要な列を削除する
(2)「生年月日」をもとに「今年の誕生日」のデータ(列)を作成する
(3)「今日の日付」と「今年の誕生日」が一致する会員だけを抽出する
希望する形にデータ表を加工できたら、クエリに適当な名前を付けて「閉じて読み込む」のアイコンをクリックする。すると、加工済みのデータ表が「テーブル」としてExcelに出力される。
以下の図は、2024年6月26日に作業を行った例だ。この場合、「今日の日付」は2024/6/26になるため、「今年の誕生日」が2024/6/26の会員だけが抽出されることになる。その結果、「誕生日が6月26日の会員」だけをピックアップしたデータ表が出力される。
以上が、クエリを作成するときの“大まかな流れ”となる。今回の例では「今日が誕生日の会員」だけを抽出するようにデータ表を加工したが、この処理手順は用途や目的に応じて変化する。
つまり、「Power Query エディターで処理手順を自由に指定できること」が、パワークエリを使えるようになるための条件といえる。そのためには、Power Query エディターに用意されている“コマンドの使い方”を学ぶことが当初の目標になる。これについては、以降の連載で詳しく解説していく予定だ。
クエリの更新
クエリとして登録した処理手順は、好きなタイミングで何回でも実行することが可能である。クエリを再実行したいときは、「データ」タブにある「すべて更新」のアイコンをクリックすればよい。
たとえば、翌日の2024年6月27日にクエリを再実行すると、誕生日が6月27日の会員だけを抽出したデータ表に更新できる。
以降も同様だ。6月28日にクエリを再実行すると、誕生日が6月28日の会員だけを抽出できる。
このように、「同じ処理を何回でも繰り返して実行できる」ことがパワークエリの大きな利点となる。抽出される会員データは「今日の日付」に応じて自動的に変化していくし、そのつど「会員名簿.xlsx」から最新のデータが取得されるため、新しい会員情報が追加されていても問題なく対応できる。
クエリの再編集と管理
作成したクエリの処理内容を確認したり、処理工程の一部を変更したりする場合もあるだろう。クエリの内容を確認したいときは、「データ」タブにある「クエリと接続」をクリックすればよい。
「クエリと接続」ウィンドウが表示され、登録済みのクエリが一覧表示される。ここでクエリをダブルクリックすると……、
「Power Query エディター」が起動し、処理内容を確認できるようになる。なお、それぞれの処理工程は「ステップ」として記録される仕組みになっている。
各ステップを選択すると、「その処理工程を行った直後の状態」がプレビューとして表示される。また、画面上部にある数式バーには、そのステップの処理を記したM言語が表示されている。
クエリ全体についてM言語を確認することも可能だ。この場合は「詳細エディター」をクリックすればよい。
このように、クエリに登録した処理手順は、M言語というプログラミング言語で記録されている。このM言語は、「Power Query エディター」で処理手順を指定した際に自動記述されため、M言語の記述方法を知らなくてもパワークエリを活用することが可能だ。
もちろん、M言語に詳しくなれば、それだけパワークエリの応用範囲も広くなる。とはいえ、いきなりM言語を勉強するのは少し敷居が高いといえる。それよりも「Power Query エディター」に用意されているコマンドの使い方を学ぶことから始めるとよい。
コマンドの使い方を覚えていくうちにM言語への理解も少しずつ高まっていくので、M言語は上級者向けの機能と割り切って考え、まずは各コマンドの使い方と用途を学んでいこう。
ということで、次回の連載から「データの取得元を指定する方法」や「各コマンドの使い方」について詳しく解説していこう。