Excelの学習順序で思うこと(VBAより先にPower Query)
1. 現状
Yahoo!知恵袋のExcelカテゴリーで目立つ質問は次の通りです。(%は2025/12/23の40件の比率{*1])
- ワークシート式、ワークシート関数 : 30%
- 表示形式、日付含む : 13% [*2]
- VBA : 10%
- ワークシートのフィルタ : 5%
- 条件付き書式 : 5%
- グラフ : 5%
最初は殆どの人が「紙やスライドに表示する表やグラフ=出力」や「データを入力する表=入力」を作成・再利用するためにExcelを使用すると思います。
この作業を楽にするために、ワークシート式(ワークシート関数)、表示形式、VBA、条件付き書式、という質問が多いのだと感じます。
Excelの入門書、教育カリキュラム、MOSなども、このニーズに合わせていると思われます。
問題
普通の人の頭にあるのは、出力表と入力表です。それらは見た目で作られ、計算方法を配慮していません。そのため、集計するワークシート式やVBAは複雑になります。複雑なので、ミスをしやすい、他の人に引き継ぎにくい、属人的になる等の問題があります。
[*1] Yahoo!知恵袋のページをPower Queryで取込み、手作業で仕分けを行い、ピボットテーブルで集計しました。仕分けにAIを使うためには、まず学習用に人が仕分けしたデータを作成し、それを用いて仕訳コードをAIに生成してもらうか、機械学習モデルをAIに作成してもらう必要がありそうです。
[*2] 表示されているもの=実データだと勘違いしている人や、シリアル値を理解していない人が多い。データ型の違いを知らない人が多い。
2. 学習順序の提案
出力表と入力表の他に、データ処理がしやすいリスト形式・データベース形式と呼ばれる表の形を学ぶと、集計処理を簡単にすることができます。
なので、次のような順番でExcelを学習したほうが良い気がします。
- ワークシート式、ワークシート関数。書式。
- グラフ
- ピボットテーブル、Power Query、Power Pivot
- VBA
理由
VBAやワークシート式は柔軟なので、データベース形式ではない表でも処理ができます。なので、「ネ申エクセル」や「Excel方眼紙」等の2次利用しにくい表作りのテクニックが身に付き、データ処理しやすいデータ構造(データベースのスキーマ)が身に付きません。
ピボットテーブルやPower Queryは機能がテーブルに制限されているので、自然にデータベース形式が身に付きます。また、Power Pivot/DAXにより、Self Service BIツールのようなデータ分析も行うことができます。
メリット
これにより、次のようなデータ処理を考えることができるようになります。
入力表 ⇒ データベース ⇒ 集計処理 ⇒ 集計表 ⇒ 出力表 (入力表 = データベースや、集計表 = 出力表の場合もある)
それぞれの変換(整形、集計)は、ワークシート式、VBA、ピボットテーブル、Power Query/Power Pivot、Access他で行います。
データベースを意識した入出力表を作成することで、ワークシート式で配列やスピルを使用したり、VBAで連想配列やADOなどを使用したり、ピボットテーブルを使用したり、Power Query/Power Pivot/Power BIを使用することで、数式やコードをシンプルにすることができます。これにより可読性が向上し、ミスが減り、保守や引継ぎが容易になります。
VBAよりPower Queryが良い点として、トレースのしやすさがあります。Power Queryにはループが無く、ステップを逆戻りでも確認ができるので、進むことしかできないVisualBasicのデバッカよりトレースしやすいです。即ち、コードが苦手な人にとっての可読性が良いです。
VBAは必要
VBAは、Power Query/Power Pivot以上のことができます。なので、VBAは必要です。でも学ぶ順番としては、Power Pivotでデータスキーマを学んだ後で良いと思います。
3. 参考
MOS Excel 365の出題範囲の不思議
https://bigarrow.tea-nifty.com/blog/2025/02/post-19756d.html
あなたのそれ、間違ってますよ。Excelには、正しい使い方があるんです!/Office TANAKA(開始7分から1分間を見てください。)
https://www.youtube.com/watch?v=BFJMzjlFpMw
9割の人が知らない、エクセル資料の「絶対ルール」/栗原 ~あなたのコンサルタント~
https://note.com/kurihara_y_dyla/n/nec9066cdd7a5
パワークエリ x パワーピボットでエクセルのデータ集計が超進化!【Excel PowerQuery PowerPivot DAX】【データ分析】【ビッグデータ】/ExcelドカタCH
https://youtu.be/S_Wa_puqpD0?si=s-RNboYTBa2uU6_t
【機能】Power Queryとは何か?何ができるのか?を詳しく解説/Office TANAKA
https://youtu.be/Z-08XG5wwRc?si=imvUC7qoZ0VJ54Rc
4. 余談
1) ワークシート式、ワークシート関数、VBAしか知らない
Yahoo!知恵袋の質問は、処理しにくい形の表を「関数の数式で」や「マクロVBAで」処理する質問が多いです。Excelカテの回答者は優秀で、悪い構造のデータでも洗練された関数式やVBAコードを回答します。
でも、中には元表をデータベース形式にしてモダンExcelで処理した方が良い事例も散見されます。関数やVBAの回答があると、元データを変えたほうが良いという回答は、採用されにくいです。中には、元データを変える助言に、そんなことは聞いていないと怒り出しブロックする人もいます。正しいデータベーススキーマを拒絶し、自動化しにくい見た目の表から脱却しようとしません
一方、入力を1つのデータベース形式にしろと回答をする人がいますが、それはケースバイケースです。入力表は入力のしやすさも大事です。なので、複数に分割してもクロス表でもPower QueryやVBAで整形しやすい形であれば良いでしょう。
理想的には、入力をExcelのフォームやVBAやAccessなどの入力フォームで入力し、データベースに直接入力する方が2重管理にならないので良いです。でも、Power Queryならデータの更新で元データに更新されるので不整合の問題は無いです。なので、入力フォームを作る能力や環境が無いのであれば、無理して見にくいデータベース形式の表に直接入力しなくても良いと思います。
2) データの一元化
業務で色々な集計をするときに、共通の元データを使用することがあります。そして、メールで集めた元データを各自の作業フォルダにコピーし、それを集計表にコピペで貼り付けて集計する人がいます。コピペ作業に時間が掛かるので、メール回答の締め切りを早くします。これにより、元データの作成期間が短くなり、数値の精度が悪化します。各人がコピーした個人ファイルがサーバーを圧迫し、使用する版の間違いが発生します。
そこで、コピペを止めて一元化された元データをPower Queryで直接集計する仕組みにすれば、コピペの時間を元データの質の向上に割り当てることができ、集計精度が上がります。
この時、一元化された元データと集計表の関係をER図のようなブロック図で整理しておくことをお勧めします。
私は下記のお絵描きソフトを使用してブロック図を作成しています。(本格的なER図を書くなら、SQL/DDLなどと連携できる専用ソフトの方が良いと思います。)
draw.io : https://www.drawio.com/
3) セルアドレス依存の問題
セルアドレスは単純な縦横のアドレスので、表示されている範囲の参照であれば、簡単に何処を指しているのかを理解することができます。
しかし、大きな表や別シートや別ファイルのセルアドレスになると、セルアドレスだけでは何のデータか分かりません。なので、アドレス間違いに気が付かないという問題を起こします。
LET関数、構造化参照、スピル、連想配列、ADO、Power Query、Power Pivot/DAXなどを使用し、セルアドレス依存を軽減するのが良いと思います。
4) 式の可読性の向上策
可読性の良い数式やコードを書くことを意識すると良いです。
- 長い関数式:新しい関数、ピボットテーブル、Power Query、Power Pivot、VBA
- 多数の式:スピル、ピボットテーブル、Power Query、Power Pivot(メジャー)
- 多数のセルアドレス:LET関数、構造化参照、Power Query、Power Pivot(DAX)
- 長いVBAコード:Excel機能の利用、連想配列、ADO
- 長いPower Query Mコード:元データのリスト形式化、元データのシンプルなクロス表化
- 長いDAX式:ディメンジョンテーブルとコンテキストの活用
Power Queryのクリック操作は、Watch Windowを設定しなくても各ステップの表の状態をモニタ出来るので、可読性が良いです。
8) Power Query Mの解説本が無い
Power Queryエディタにより生成されたコードは、マクロの記録で生成されたVBAコードより、実用になります。これは、Power Queryエディタの操作がテーブルの操作に制限されているからです。しかし、Power Queryエディタのクリック操作ではできない処理も多くあります。
そこで、Power Query Mのプログラミングスキルが必要になって来ます。しかし、VBAの本は数多くあるに、日本語のPower Query Mの本はありません。次のような本の翻訳版を出版してくれると嬉しいですね。
なお、クリック操作でできないPower Query Mのコードは属人的になり、VBAマクロと同様に他人による保守性が悪化する原因にもなるので、注意が必要です。多少クリック操作が多くなっても、コードを直接書くことを避けたほうが良い場合もあります。
The Definitive Guide to Power Query (M): Mastering complex data transformation with Power Query (English Edition) Kindle版
https://www.amazon.co.jp/dp/B0CKRL5M3F
素人のExcel Power Query, Power Pivot, DAXの書籍の感想 : 当ブログ : 2023/012/23
https://bigarrow.tea-nifty.com/blog/2023/12/post-e4920e.html
5) メジャー(DAX)
メジャーはピボットテーブルの集計式のバリエーションを拡大します。
例えば、ピボットテーブルで累計や移動平均や比率の計算をするには、メジャーが必要です。(Excelが用意する暗黙のメジャーもありますが)
1つの式で、コンテキストにより動的に集計範囲が変わるので、式の数を大幅に減らすことができます。
式の少なさは可読性の向上とミスの低減につながります。ファイルサイズも小さくなります。
でもコンテキストの理解のハードルが高いです。初心者向けの書籍が殆ど無いこともハードルを高くしています。
時代はDAX式ですよ!Excelが進化する関数が主流になる!?
https://youtu.be/ayt8kikEIvk?si=WHmYbps-mhjWvM5O
(Excel/Power BI)メジャーが予期しない値を返す原因とDAXコンテキストの理解 : 当ブログ : 2026/03/18
https://bigarrow.tea-nifty.com/blog/2025/03/post-8025c7.html
7) Power BI
Power BIはデータ分析を容易にしてくれるツールです。ドリルアップ、ドリルダウン、ドリルスルーなどはExcelより使いやすいですし、Excelには無い分解ツリーなどの分析ビジュアルもあります。
しかし、ExcelやPower Pointを主に使用している環境では使いにくい面もあります。
- レポートの共有やPower Pointへのリンク貼付けなどは、Microsoft 365 E5やPower BI Proの契約が必要。大企業向け価格。
- デスクトップアプリがOLEに対応していないので、Excel、Power Point、Wordにリンク貼り付けができない。
- ビジュアルの要素(グラフなど)のレイアウトの自由度がExcelより小さい。
- 無料で使えるその他のビジュアルが少ない。有料のものは社内の支払い手続きが面倒。有料のものでも機能の自由度が不十分で且つサブスクリプションなので使用頻度に対し割高。
- カスタムビジュアルの作成方法のやさしい解説が無く、難易度も高そう。
- 画面表示サイズに大きさが固定され、スクロールさせたりA4やA3で印刷するような大きなサイズのレポートを作ることができない。
- 2026年からPython、Rのビジュアルサポートが無くなった。
無料版 Power BI Desktop
https://www.microsoft.com/ja-jp/power-platform/products/power-bi/getting-started-with-power-bi#Desktop-app
“挫折と栄光”、組織でPower BIを最大限に推進するために
https://marshal115.hatenablog.com/entry/2022/12/24/000314
8) 希望:Excelのデータベース入力機能?
Excelのフォーム機能とPower Pivotが連動してくれると嬉しいですね。カード型入力と表形式の入力フォームと連動する複数のテーブルと、複数のテーブルのリレーションが、ノーコードやローコードで作成できるようになると、Power Query/Power Pivotと組み合わせで「入力⇒データベース⇒出力」の処理がとても楽になるような気がします。
Power Platformでやるなら、VBAのフォームの代わりにPower Appsのキャンバスアプリを使うことでローコードにはなりますね。Power Appsの機能がExcelに入ると、フォームが作りやすくなるかも知れません。
9) Yahoo!知恵袋やLLMの功罪
VBAや複雑なワークシート式の回答の中身を理解しないで使用している人がいます。また回答に解説が無いことが多いです。コピペプログラマーは、LLMが回答したコードや数式や結果を理解しないで使います。その結果、ブラックボックスに爆弾を抱えたExcelの表が作られます。怖い話です。
Excelの表を電卓で検算しろという人を馬鹿にするExcel信者がいますが、実務では間違ったExcel表は珍しくなく、それを発見する手法として電卓が有効な場合もあります(もっと効率が良い方法もありますが)。複雑な集計の場合は、2つ以上の集計方法を組み込んで、それぞれの差分を表示する仕組みにします。これにより、セルアドレス間違い、不適切な丸め計算などを検出することができます。
今後LLMの普及で爆弾を抱えた表やVBAコードが増えると思います。なので、検算やPCLによるテストがますます重要になります。Excelの計算結果を鵜呑みにすると危険です。爆弾を発見するために、色々な視点で値を見ることが必要です。
AIの普及で「LLMにExcelの表を作らせたのだが、PDFにすると右が表示されない、LLMに聞いても解決しなかった(実際ははみ出ていて次ページにあった)」という低レベルの質問が増加しています。
10) 人によって表の目的は異なる:モダンExcelのBIツールとしての側面
表がアウトプットの人と、表がインプットの人がいます。Yahoo!知恵袋の回答を見ると「表がアウトプットの人」が多いようです。IT部門は表がアウトプットです。このような人が作るワークシート式やVBAで作られた表は、視点を変えたり粒度を変えることができません。後から「こうしたいんだけど」と言うと、「要件定義に無いのでできません」「別料金です」と言われます。当然です。
世の中の人口は、「IT部門・プログラマ等」<<「IT部門・プログラマ等でない人」だと思います。
「表がインプットの人」にとって表は作って終わりではありません。良いのか悪いのかを判定し、その原因を調べ、次の計画を立てるために表を使います。インプットされた表が不十分であれば、表を変えます。その業務を合理化するために、Power BIやTableuのようなSelf-Service型のBIツールがあります。VBAやSQLで良いでしょ、という人は、表がアウトプットのIT部門の人です。
モダンExcelは、BIツールに似たような側面があります。モダンExcelによるピボットテーブルは、異なる行列の項目や展開等の異なる表をクリック操作やスライサーで作ることができます。Power BIでは、ドリルダウン、ドリルアップ、ドリルスルーが実装されていますが、これに近いことがモダンExcelでは多少やりやすいです。でも、モダンExcelにもっとPower BIの機能(要因分析や色々なビジュアル)があると嬉しいですね。
| 固定リンク





コメント