「Power Query エディター」で指定した処理手順は、それぞれの工程が「ステップ」として記録される仕組みになっている。このため、「データ表がどのように加工されていくのか?」をステップ単位で逐次、確認することが可能である。今回は「ステップの操作」について詳しく解説していこう。

ステップの確認

パワークエリを上手に活用していくには、「ステップ」の考え方や操作方法についても学んでおく必要がある。今回は、ステップの操作について詳しく解説していこう。

  • ステップの操作

今回も、フォルダー内にあるExcelファイルを「1つのデータ表」に結合するクエリ(自動処理)を例に解説を進めていこう。これまでの連載では、以下の手順で自動処理を行うクエリを作成した。

<処理手順>
1. 「4月の売上」フォルダー内にあるファイルを結合してデータ表を作成する
2. 結合したデータ表から「合計の行」を削除する
3. 取得元のファイル名をもとに「日付」のデータを作成する
4. 加工したデータ表をExcelに出力する

この処理手順が「どのようにクエリに記録されているか?」を確認してみよう。なお、「4月の売上」フォルダーには3日分(4月1日~4月3日)のExcelファイルが保存されているものとして話を進めていく。

パワークエリで4月の売上データを結合したExcelファイルを開き、「データ」タブにある「クエリと接続」をクリックする。

  • 「クエリと接続」ウィンドウの表示

「クエリと接続」ウィンドウが表示されるので、「4月の売上」のクエリをダブルクリックする。

  • 「Power Query エディター」の起動

「Power Query エディター」が起動する。今回は、画面右側に表示されている「適用したステップ」の領域に注目していこう。

  • クエリに登録されているステップの一覧

画面を少しでも広く使えるように、左側にある「クエリの一覧」を一時的に非表示にする。「クエリの一覧」の表示/非表示を切り替えるときは、以下の図に示したアイコンをクリックすればよい。

  • クエリの一覧の表示/非表示

それでは、ステップの考え方について詳しく説明していこう。まずは、一番上に表示されている「ソース」のステップを選択する。すると、データ表の表示(プレビュー)が以下の図のように変化する。

  • 「ソース」のステップを選択した様子

これが自動処理を開始した直後の状態となる。今回の例では「4月の売上」フォルダーからデータを取得するため、最初に「4月の売上」フォルダーをチェックする工程が行われる。その結果、「3つのExcelファイルが取得された」ということを上図は示している。

「ソース」のステップの後には、「フィルター選択された非表示...」や「カスタム関数の呼び出し1」などのステップが続いている。これらのステップは、各Excelファイルのデータ表を結合するためにパワークエリが自動追加したステップとなる。データ表を結合する処理は「変更された型」のステップまで続いている。

ということで、今度は「変更された型」のステップを選択してみよう。すると、各Excelファイルを単純に結合した状態のデータ表が表示されるのを確認できる。なお、現時点では、まだ「合計の行」は削除されていない。

  • 「変更された型」のステップを選択した様子

それぞれの処理工程とステップの関係

「変更された型」よりも後に表示されているステップは、「Power Query エディター」を使って“自分で指定した処理手順”となる。順番に見ていこう。

最初に指定したのは「合計の行」を削除する処理だ。もっと具体的に書くと、フィルター機能を使って「数量」の列が「合計」の行を除外する、という処理を指定した(詳しくは第2回の連載を参照)。この工程を記録したステップが「フィルターされた行」となる。

試しに「フィルターされた行」のステップを選択してみると、データ表から「合計の行」が削除されているのを確認できる。

  • 「フィルターされた行」のステップを選択した様子

続いて、取得元のファイル名をもとに「日付」のデータを作成していく。この処理は、以下の5つの工程で構成されている(詳しくは第3回の連載を参照)。

(3-1)「抽出」コマンド
「Source.Name」の列から「“の”より前にある文字」を抽出し、新しい列を作成する

(3-2)列名の変更
作成された列の名前を「日付」に変更する

(3-3)データ型の変更
「日付」の列のデータ型を「日付」に変更する

(3-4)列の並べ替え
「日付」の列を左から2番目へ移動する

(3-5)列の削除
「Source.Name」の列を削除する

これらの工程も、それぞれがステップとして記録されている。たとえば、(3-1)の工程は「区切り記号の前に挿入された...」という名前でステップとして記録されている。このステップを選択すると、「Source.Name」の列から「“の”より前にある文字」を抽出したデータで「新しい列」が作成されているのを確認できる。

  • 「区切り記号の前に挿入された...」のステップを選択した様子

(3-2)の工程は「名前が変更された列」という名前でステップとして記録されている。このステップを選択すると、列名が「日付」に変更されるのを確認できる。

  • 「名前が変更された列」のステップを選択した様子

同様に、(3-3)の工程は「変更された型1」、(3-4)の工程は「並べ替えられた列」、(3-5)の工程は「削除された列」という名前でステップとして記録されている。

最終ステップとなる「削除された列」を選択すると、「Source.Name」の列か削除され、最終的な形にデータ表が加工されているのを確認できる。

  • 最後のステップを選択した様子

このように各ステップを選択すると、「その工程を行った直後の状態」がプレビューとして表示される仕組みになっている。つまり、各ステップを選択していくことで、その時点におけるデータ表の状況を逐次、確認することが可能となっている訳だ。

ステップ名の変更

各ステップの名前は、その工程に使用したコマンド名などをもとに自動命名される。とはいえ、このままでは「どの処理を担当している工程なのか?」を把握しづらい場合もあるだろう。

このような場合は、各ステップの名前を変更しておくと状況を把握しやすくなる。ステップ名を変更するときは、そのステップを右クリックして「名前の変更」を選択すればよい。

  • ステップ名の変更手順(1)

続いて、「新しい名前」をキーボードから入力する。これでステップ名を自由に変更できる。

  • ステップ名の変更手順(2)

上図は、フィルター機能により「合計の行」を除外するステップの名前を「合計の行を削除」に変更した例だ。

ステップの削除

「Power Query エディター」で処理手順を指定する際に、間違った処理を指定してしまったり、後になって「この処理は要らなかった……」と気付いたりするケースもあるだろう。このような場合は、各ステップの左端に表示される「×」アイコンをクリックし、確認画面で「削除」ボタンをクリックすると、そのステップを削除できる。

  • ステップを削除する操作

たとえば、先ほど名前を変更した「合計の行を削除」のステップを削除すると、「合計の行」は除外されなくなり、そのままデータ表に残るようになる。

  • ステップを削除した様子

以降のステップも「合計の行」がある状態のまま処理が進められていく。このため、「日付」の列は作成されているが、「合計の行」は残ったまま、という状態になる。

  • 最後のステップを選択した様子

このように、途中の工程を省略したクエリに後から改変することも可能である。処理手順を間違えて指定してしまった場合や、不要な処理が見つかった場合の対処方法として覚えておくとよいだろう。

途中にステップを挿入する場合

自動処理の途中に「新しいステップ」を挿入することも可能だ。この場合は、その直前にあるステップを選択しておけばよい。

  • 直前のステップを選択

この状態で処理内容を指定すると、先ほど選択したステップの直後に「新しいステップ」が挿入される。たとえば、「合計の行」を削除する工程を再指定したい場合は、以下の図のように操作する。

  • 処理手順の指定

「合計の行」を削除する工程が「フィルターされた行」というステップ名で一覧に挿入される。

  • 挿入されたステップ

逆に考えると、自動処理の最後に「新しいステップ」を追加するときは、最後のステップを選択した状態で処理内容を指定していく必要がある訳だ。パワークエリに慣れていない方がミスを犯しやすい部分なので、間違えないように注意しておこう。

今回の連載で解説したように、「Power Query エディター」で指定した処理手順は、それぞれの工程が「ステップ」として記録されていく仕組みになっている。このステップを操作することで、指定した処理手順を後から改変することも可能だ。パワークエリの根幹をなす仕様なので、その考え方や操作方法を必ず理解しておこう。