毎月の集計をマクロにする前に。Power Queryなら、コードを書かずに手順が残る

朝もやのかかった針葉樹林の風景イラスト

毎月おなじ作業をしている。

システムからCSVを落とす。不要な行を消す。列を並べ替える。取引先名の表記を揃える。前月ぶんとくっつける。ピボットで集計する。

30分。毎月やっている。

「マクロを組めば早いのでは」と思う。ただ、VBAを書くのは腰が重いし、書いたあと誰も直せなくなる。

その中間に、Power Queryがある。 コードを書かずに、手順を記録して、毎月ボタン1つで再現できる。

この記事は育ちます。公開後も、会話パート・トーク・補足を足していきます。
公開 2026-10-24 / 最終更新 2026-10-24(公開)

水深 — Power Queryは何をする道具か

Excelに標準で入っている機能だ。データタブの「データの取得と変換」のあたりにある。

やることは3つに分けられる。

  • 取得 CSV、Excel、フォルダ、データベースから読む
  • 変換 いらない行を消す、列を分ける、表記を揃える、集計する
  • 読み込み 結果をシートかピボットに出す

このうち、変換の手順が全部記録される。ここが肝心なところになる。

画面で「この列を削除」「この列を分割」と操作すると、右側に手順が1行ずつ積み上がっていく。

翌月、新しいCSVに差し替えて「更新」を押すと、同じ手順が上から順に実行される。

VBAとの違い

似たことはVBAでもできる。違いを並べる。

Power QueryVBA
書き方画面の操作コードを書く
手順の見え方一覧で見えるコードを読む
途中の確認各ステップの結果が見られる実行しないと分からない
直すとき該当ステップをクリックコードを探す
できることデータの整形が中心何でもできる
動く場所Excel、Power BIなどExcel

いちばん大きいのは、途中が見えることだと思う。

VBAは、実行して結果が変だったとき、どこで壊れたか分からない。Power Queryは、手順を1つずつクリックすれば、その時点でのデータの状態が表示される。

デバッグが目で見てできる。 これは初めて触る人にとって、かなり大きい。

そして、引き継ぎやすい。コードが読めない人でも、手順の名前は読める。「削除された列」「置き換えられた値」「グループ化された行」と日本語で並ぶ。

朝もやのかかった針葉樹林の風景イラスト

よく使う操作、10個

実務でこれだけ覚えれば足りる、という範囲を挙げる。

① 不要な行の削除

上から◯行削除、空白行の削除、重複の削除。

② 1行目をヘッダーにする

システムから出したCSVは、上に説明行が入っていることがある。それを消して、次の行を見出しにする。

③ 列の削除・並べ替え

使わない列を消す。順番を変える。

④ 値の置換

「株式会社」を「(株)」に揃える、など。表記ゆれをここで潰す。

⑤ 列の分割

区切り文字で分ける。「東京都渋谷区…」を分ける、氏名を姓と名に分ける。

⑥ 型の変更

文字列、数値、日付を指定する。ここで日付を正しく指定しておくと、あとで楽になる。

⑦ フィルター

条件に合う行だけ残す。

⑧ 列の追加

計算列を足す。条件列(IFのようなもの)も画面で作れる。

⑨ グループ化

取引先ごとの合計、月ごとの件数。ピボットに近いことがここでできる。

⑩ クエリのマージ/追加

  • マージ 2つの表を、キーで横につなぐ(VLOOKUPに相当)
  • 追加 2つの表を、縦に積む(12か月ぶんをつなぐ)

⑩がいちばん強い。VLOOKUPを1件ずつ探すのではなく、まとめて突き合わせるので速い。

フォルダ内の全ファイルをまとめる

Power Queryでいちばん感動したのがこれだった。

「フォルダから」を選ぶと、指定したフォルダの中の全ファイルを、1つの表にまとめられる。

  • 部署ごとに提出された12個のExcel
  • 月ごとに分かれたCSV
  • 支店ごとの売上ファイル

これを全部読んで、縦に積む。ファイルを1つ足せば、更新するだけで反映される。

いままで手で開いてコピーしていた作業が、消える。

条件は、ファイルの形が揃っていること。列の順番や見出しが違うと、そこで崩れる。

だから提出フォーマットを配るところから始める。これは前にFAXの話で書いたのと同じで、入力の形を揃えるのが先になる。

手順を、あとから直せる

もうひとつの利点。

3か月後に「この列も必要になった」となったとき。

手順の一覧から、該当するステップをクリックする。その時点の状態が表示される。列を削除したステップなら、削除する列の指定を変えるだけでいい。

そして、その後のステップは自動で再実行される。

VBAなら、コードを読み直して、該当箇所を探して、書き換えて、動かしてみる、という手順になる。Power Queryは、直したいところをクリックするだけだ。

注意しておくこと

いいことばかり書いたので、詰まるところも書く。

① ファイルのパスが変わると壊れる

「Cドライブの◯◯フォルダ」と記録されている。ファイルを移動すると、そこで止まる。

対策は、「データソース設定」からパスを変える。または、最初から共有フォルダの決まった場所に置く。

② 列名が変わると壊れる

「取引先名」という列を削除する手順が記録されている。元のCSVで列名が「取引先」に変わると、見つからずエラーになる。

システム側の仕様変更で起きる。エラーメッセージに列名が出るので、原因は分かりやすい。

③ 重いファイルでは時間がかかる

数十万行を扱うと、更新に数分かかることがある。それでも手作業よりは速い。

④ 変換したデータは、元に戻せない

Power Queryは元ファイルを書き換えない。読み込んで、加工して、新しい表を出すだけ。これは安全な設計だが、「元ファイルを直したい」用途には使えない。

⑤ 日本語の情報が、まだ少ない

VBAに比べると、調べたときに出てくる情報が少ない。エラーの原因を探すのに時間がかかることがある。

林のそばに張ったテントと焚き火の風景イラスト

VBAを使うべき場面

じゃあVBAはいらないのかというと、そうではない。

Power Queryが向く

  • データを読んで、整えて、集計する
  • 複数ファイルをまとめる
  • 毎月同じ形のデータを処理する

VBAが向く

  • Excelの操作そのものを自動化する(シートを作る、印刷する、保存する)
  • メールを送る、他のアプリを動かす
  • 入力画面を作る
  • 帳票を1枚ずつPDFにする

データの整形はPower Query、Excelの操作はVBA。 この線で分けると、両方の得意なところが使える。

そして実務では、組み合わせることも多い。Power Queryでデータを整えて、VBAで印刷・保存する、という形になる。

最初にやってみるなら

いちばん手応えのある入口は、「フォルダから複数ファイルをまとめる」だと思う。

手順はこうなる。

  • データタブ →「データの取得」→「ファイルから」→「フォルダから」
  • フォルダを選ぶ
  • 「データの変換」を押す(「結合」より先に、中身を見る)
  • 不要な列を消して、1行目をヘッダーにして、型を指定する
  • 「閉じて読み込む」

30分くらいで、毎月の作業が1回消える。

そして一度作れば、来月は更新ボタンを押すだけになる。

手順が残る、ということ

最後に、この道具の本質だと思うところを書く。

手作業には、手順が残らない。

毎月やっている人の頭の中にはあるが、どこにも書かれていない。だから引き継ぎのときに「まず不要な行を消して、それから…」と口で説明することになる。

このブログの最初のほうで、引き継ぎの話を書いた。前任者から渡されたのは、口頭とノートだけだったという話だ。

Power Queryは、手順そのものが成果物になる。ファイルを渡せば、手順も一緒に渡る。

自動化の価値は、速くなることだけではないと思う。やっていることが目に見える形で残ること。引き継ぎのときに、それがいちばん効く。

航路 — 書かずに、残す

整理する。

  • Power Queryは、データの取得・変換・読み込みを、画面の操作で行う道具
  • 変換の手順が1行ずつ記録され、翌月は更新ボタンで再現できる
  • VBAとの最大の違いは、途中の状態が目で見られること
  • よく使うのは、不要行の削除・列の分割・値の置換・型の変更・グループ化・マージ/追加
  • フォルダ内の全ファイルを1つの表にまとめられるのが強い
  • 詰まるのは、パスの変更、列名の変更、情報の少なさ
  • データの整形はPower Query、Excelの操作はVBA
  • いちばんの価値は、手順が成果物として残ること

「マクロを組むほどでもないが、毎月やっている」という作業が、いちばん多いと思う。

そこに合う道具が、Excelの中にもとから入っていた。使われていないだけだった。

30分の作業を月1回。年6時間。それが数分になる。しかも手順が残る。試してみる価値は、じゅうぶんにあると思う。

M言語という、裏側

Power Queryは画面の操作で使えるが、裏ではM言語というコードが生成されている。

「詳細エディター」を開くと、それが見られる。

書けなくても問題ない。ただ、読めると便利な場面がある。

  • 手順が多すぎて、画面で追うのが大変なとき
  • 他の人が作ったクエリを理解したいとき
  • 同じ処理を、別のクエリにコピーしたいとき

コードは、こういう形をしている。

let

ソース = Csv.Document(File.Contents(“C:\data\売上.csv”)),

昇格されたヘッダー数 = Table.PromoteHeaders(ソース),

削除された列 = Table.RemoveColumns(昇格されたヘッダー数,{“備考”})

in

削除された列

日本語で書かれているので、なんとなく読める。「ソースを読んで、ヘッダーを昇格して、列を削除する」と書いてある。

VBAより読みやすいと思う。手順が上から順に並んでいて、それぞれに名前が付いているからだ。

使い回せる形にする

同じような処理を複数のファイルでやるなら、工夫できる。

① パラメーターを使う

ファイルのパスや、対象年月を「パラメーター」として外に出す。

これをやっておくと、毎月の指定を1か所変えるだけで済む。クエリの中身を触らなくていい。

② クエリをコピーする

作ったクエリは、右クリックでコピーできる。別のブックに貼り付けることもできる。

③ 途中で分岐させる

1つのクエリを途中まで作って、そこから「参照」で2本に分ける。共通部分を1回だけ書けばよくなる。

たとえば、「CSVを読んで整える」までを共通にして、そこから「月次集計」と「取引先別集計」に分ける。元の整形を直せば、両方に反映される。

Power Query と ピボットの組み合わせ

前に書いたピボットの話とつながる。

  • Power Query データを整える(縦持ちにする、複数ファイルをまとめる、表記を揃える)
  • ピボット 整ったデータを、切り口を変えて見る

この2つを組み合わせると、関数をほとんど書かずに月次資料ができる。

とくに、横持ちの表を縦持ちに変換する機能が強い。

「列のピボット解除」という操作がある。月ごとに列が並んだ表を選んで、これを押すと、縦持ちのリストに変わる。

部署月金額
営業4月100
営業5月120

この形になれば、あとはピボットで自由に集計できる。

手作業で縦持ちに直していた作業が、ボタン1つで終わる。 ここがいちばん感動するところだと思う。

どこから手をつけるか

「毎月やっている作業」を1つ選んで、そこだけやってみるのがいいと思う。

選ぶ基準は、

  • 毎月やっている(1回きりなら手でやったほうが速い)
  • 手順が決まっている(毎回判断が入るものは向かない)
  • 元データの形が同じ(列が毎回変わると壊れる)

この3つを満たす作業が、たぶん1つはある。

そして、最初の1回は手作業より時間がかかる。それは覚悟しておく。2回目から回収が始まる。

年に12回やる作業なら、3か月で元が取れる計算になる。

引き継ぎのときに、何を渡すか

最後に、この記事を書いた動機の話を。

このブログの最初のほうで、引き継ぎについて書いた。前任者から渡されたのは口頭とノートだけで、資料はゼロだった、という話だ。

あのとき欲しかったのは、マニュアルではなかったと思う。マニュアルは書いた時点で古くなる。

欲しかったのは、動くものだった。

Power Queryで作ったクエリは、動くし、手順が読める。「なぜこの列を消しているのか」は書かれていないが、「消している」という事実は残る。

マニュアルに「不要な列を削除します」と書いてあっても、どの列かは分からない。クエリには、列名が書いてある。

手順が成果物になるというのは、そういうことだと思う。引き継ぐ相手に、説明ではなく、実物を渡せる。


夕方の海と小さな帆船の風景イラスト

この記事は、まだ書きかけです

この記事は、公開してから足していく形にしています。調べたことを書いた本文がまず先にあって、あとから「聞き手と話し手の会話」「あとで思い出したこと」「読んだ人から教わった補足」が積もっていきます。

だから、同じURLでも半年後には別のものになっているはずです。もし一度読んだことがある記事なら、下の更新ログだけ見てください。増えたところが分かります。

更新ログ

  • 2026-10-24 公開(本文のみ。会話パートはこれから足します)