はじめに
業務効率化に役立つExcelの機能「Power Query」。
便利な機能ですが、使い込んでいくと「もう少し複雑な処理をしたいけれど、やり方がわからない」という場面に出くわすことがあります。
この記事では、Power Queryの操作に慣れてきたものの、専門的なコード(M言語)を書くのはハードルが高いと感じている方に向けて、生成AIを活用した解決方法をご紹介します。
Power Queryで「やりたいこと」が実現できないとき
基本操作に慣れてくると、「もっとこうしたい」というアイデアが浮かぶようになります。
しかし、Web検索や書籍で調べても、自分のデータにぴったり合う解決策が見つからないことも少なくありません。
そんな時、強力な助っ人となってくれるのが「生成AI」です。
どのタイミングでAIに頼るのがベスト?
最初からすべてを生成AIに任せようとすると、指示(プロンプト)の作成が複雑になり、かえって手間がかかってしまうことがあります。
おすすめは、「マウス操作でできるところまでは自分で作り、難しい仕上げの部分だけAIに頼る」という方法です。
例えば、以下のような青い表を整理して、緑の表のような形にしたいとします。 (本来はPower Queryの基本機能だけで可能な処理ですが、今回は例としてAIを活用してみます)
生成AIへの指示の出し方
手順1:まずは自分でできるところまで進める
Power Queryエディターにデータを取り込み、不要なデータの削除など、マウス操作で簡単にできる下準備までは済ませておきます。
手順2:現在のコード(M言語)を取得する
「ホーム」タブにある[詳細エディター]を開きます。そこには、これまでの操作がプログラミング言語(M言語)として記録されています。このコードをすべてコピーしてください。
手順3:AIに指示を出す
生成AI(ChatGPTやCopilotなど)に、先ほどコピーしたコードを貼り付け、追加で行いたい処理を日本語で指示します。
以下のM言語について、以下の処理を追加してください。
・お客様番号を分割して、それぞれの項目名を「地区コード」「コースコード」「枝番」にリネームしてください。
・電話番号の「-」を削除してデータ型を文字列に変更してください。
・登録日付のデータ型を日付のみに変更してください。
・最終的な列の並びを「お客様番号」「住所」「電話番号」「登録日付」「地区コード」「コースコード」「枝番」で表示してください。
let
ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
変更された型 = Table.TransformColumnTypes(ソース,{{"お客様番号", type text}, {"住所", type text}, {"電話番号", type text}}),
削除された他の列 = Table.SelectColumns(変更された型,{"お客様番号", "住所", "電話番号", "登録日付"})
in
削除された他の列
手順4:AIが作ったコードを適用する
AIが修正後のコードを出力してくれます。これをコピーし、Power Queryの[詳細エディター]の中身とまるごと入れ替えて[完了]を押します。
これで、複雑な処理があっという間に完了しました!
この方法の良い点・悪い点
生成AIを活用したコーディング支援は非常に便利だと感じた一方、メリットだけでなく注意すべき点も実感することができました。
それぞれを理解した上で活用していただくことをお勧めします。
メリット(良い点)
圧倒的な時短
関数の書き方や構文を一つひとつ調べる時間を大幅に短縮できたと感じました。
「やりたいこと」を日本語で伝えるだけでコードが生成されるので、業務スピードが格段に上がります。
M言語の勉強になる
生成AIが書いたコードを見ることで、「こういう処理にはこの関数を使えばいいのか」という気づきが得られました。
解説を求めればコードの意味も教えてくれるしM言語にコメントまでつけてくれるため、初心者の学習ツールとしても活用できそうでした。
エラー解消のヒントが得られる
エラーが出た際、そのエラーメッセージとコードを生成AIに見せることで、修正案を提示してもらえる場合があります。
実際、Excel2016でもバージョンが異なるとコードの書き方が変わってくることがありましたが、生成AIに指示して修正してもらうと書き直してくれて解決することができました。
デメリット・注意点(悪い点)
セキュリティへの配慮が必要 【超重要】
業務データをそのまま生成AIに入力するのは情報漏洩のリスクがあるなと感じました。
今回の例のように、生成AIに渡すのは「コード(処理の手順)」のみにとどめ、個人情報や機密データそのもの(表の中身)は絶対にプロンプトへ入力しないよう注意したほうがよさそうです。
AIの回答が常に正しいとは限らない
生成AIはもっともらしい嘘をつくこと(ハルシネーション)があります。
提案されたコードが正しく動くか、意図しない処理が含まれていないか、必ず自分の目で結果を検証する必要があります。
そのためには、やはりM言語についての知識をつける必要があるなと実感しました。
実際、書き直してもらった内容に構文間違いがあって表示されないこともありましたので、本当に知識重要だなと実感しました。
ブラックボックス化する恐れがある
「中身はよく分からないけれど、動いたからOK」としてしまうと、後で修正が必要になった時や、引き継ぎの際に困ることになりそうだなと思いました。
最終的には「何が行われているか」を自分自身で理解して責任を持つ姿勢が大切なのかなと思います。
まとめ
Power Queryと生成AIは非常に相性が良さそうですが、最終的な責任は人間が持たないといけないなと思いました。
セキュリティに十分配慮した上で、苦手なコーディング部分を生成AIにサポートしてもらえば、データ加工作業はもっと楽しく効率的になりそうです。





