Excel Power Queryのデータ結合をAIで効率化する方法
約10分で読めます
Power Queryでデータ結合を試みたはいいものの、M言語のエラーに何度も詰まった経験はありませんか?
複数のシートやCSVを一括でまとめたいのに、結合の順番や型の不一致で思うように動かない——そういった状況は、データ集計を担う現場担当者に非常によくあるパターンです。この記事では、AIをPower Queryと組み合わせることで、こうした壁を乗り越えるための具体的な手順と考え方を整理します。
Power Queryのデータ結合、なぜこんなに手間がかかるのか
月次レポートの締め切り前日、部門ごとに届いたCSVファイルを一つにまとめようとしたとき、Power Queryのエラーメッセージが画面を埋め尽くした——そんな経験はありませんか?
Power Queryは強力なデータ変換ツールですが、複数テーブルの結合になった途端に難易度が跳ね上がる傾向があります。主な原因として以下が挙げられます。
- 列名の表記ゆれ(「部門コード」と「部門CD」など)
- データ型の不一致(数値列に文字列が混入)
- 結合キーの選択ミス(内部結合と左外部結合の違いを誤解)
- M言語の構文エラーへの対処方法がわからない
GUIで操作できる部分は直感的でも、少し複雑な変換になると途端にM言語を手書きする必要が出てきます。正直なところ、M言語はExcel VBAよりも情報が少なく、エラーの原因を調べるだけで時間を消耗してしまうことが多いかもしれません。
特にデータ集計を一手に担う担当者にとって、この「詰まり」が積み重なると、本来の分析業務に充てる時間が圧迫されてしまいます。
AIがPower Queryのデータ結合に効く理由
結論から言うと、AIはM言語の「翻訳者」として機能するときに最も力を発揮します。
Power Queryの操作をGUIで行うと、バックグラウンドでM言語のコードが自動生成されます。しかしGUIで表現できない処理——たとえば条件付き結合や動的なテーブル名の参照——は、M言語を直接書かなければなりません。
ここでAIが役立つのは、**「やりたいことを日本語で伝えるだけでM言語のコードを生成してくれる」**からです。プログラミングの知識がなくても、「売上テーブルと顧客マスタを顧客IDで左外部結合して、顧客名列を追加したい」と伝えるだけで、動作するコードの草案を得られる可能性があります。
一方でこういう懸念もあります。AIが生成するM言語は、データの実態(列名・型・ファイル構造)を知らない状態で作られるため、そのままコピー&ペーストしても動かないケースが少なくありません。AIを「完成品を出してくれるツール」ではなく「たたき台を作るアシスタント」として位置づけることが、うまく使いこなすコツかもしれません。
AIを使ってPower QueryのM言語を生成する3ステップ
ステップ1:自分がやりたい処理を日本語で整理する
AIへの指示が曖昧だと、生成されるコードも的外れになりがちです。まず以下の情報を手元に用意してから入力しましょう。
- 結合したいテーブル名(またはクエリ名)
- 結合キーとなる列名(両テーブルで正確に)
- 結合の種類(内部・左外部・右外部・完全外部)
- 追加したい列・削除したい列
- 期待する出力のイメージ
ステップ2:AIへのプロンプトを入力する
以下は基本的なプロンプトの例です。
基本プロンプト例①(テーブル結合)
Power QueryのM言語で、以下の処理を行うコードを書いてください。
- クエリ名「売上データ」と「顧客マスタ」を結合する
- 結合キーは両テーブルの「顧客ID」列
- 結合の種類は左外部結合
- 「顧客マスタ」から「顧客名」と「担当者名」の2列を売上データに追加する
- 不要な展開列は削除する
基本プロンプト例②(エラー修正依頼)
以下のM言語コードを実行すると「Expression.Error: キーが一致しませんでした」というエラーが出ます。
原因と修正方法を教えてください。
[ここにエラーが出たコードを貼り付ける]
応用的なプロンプト(複数ファイルの動的結合・条件付きマージ・パラメータ化など)はnoteで公開しています。業務の複雑さに応じて使い分けられる構成にまとめているので、ぜひ参考にしてみてください。
ステップ3:生成されたコードを検証・調整する
最初にうまくいかなかったのが、AIが生成したコードをそのままPower Queryの詳細エディターに貼り付けたときです。列名の大文字・小文字の違いや、テーブル参照の書き方がずれていてエラーになることがよくあります。
以下の手順で検証するのが安全かもしれません。
- Power Queryの詳細エディターに貼り付ける
- エラーが出た場合はエラーメッセージをそのままAIに貼り付けて修正を依頼する
- プレビューで意図した結果になっているか確認する
- 実データで「閉じて読み込む」を実行して最終確認する
Power Query×AI活用の強みと、見落としがちな注意点
強み:M言語の壁を大幅に下げられる可能性がある
- GUIで操作できない複雑な変換処理をコードで実現できる
- エラーメッセージの意味を日本語で解説してもらえる
- 繰り返し使うクエリのテンプレートを短時間で作れる
- M言語の学習コストを段階的に下げられる可能性がある
注意点:AIはあなたのデータ構造を知らない
ただし、以下の点は注意が必要です。
- AIは実際のファイル構造・列名・データ型を把握していないため、指示が不正確だと的外れなコードが生成される
- 機密性の高い業務データをAIに貼り付けることはセキュリティ上のリスクになる可能性がある(社内ポリシーを必ず確認すること)
- 生成されたコードが正しく動いても、ロジックが意図と合っているかは人間が確認する必要がある
- Power Queryのバージョンや環境によって動作しない関数が存在する場合がある
正直なところ、AIが生成するM言語は「80点の草案」と考えるのが現実的かもしれません。残りの20点は自分で確認・調整するという前提で使うと、期待値のズレが生まれにくくなります。
AIとPower Queryの組み合わせが特に役立つシーン
向いているシーン
- 毎月同じ形式のCSVを結合して集計レポートを作る定型業務
- M言語のエラーメッセージが出たときの原因調査
- 複数部門から届くファイルを一つのテーブルに縦積みする処理
- 結合後に不要列を削除・列名を変更する整形作業
向いていないシーン・人間が判断すべき作業
- 結合ロジックにビジネスルールが絡む場合(「どの顧客を優先するか」などの判断)
- データの品質チェック(重複・異常値の判断は人間の目が必要)
- 機密性の高いデータをAIに入力することが社内規程で禁止されているケース
- Power Queryではなくピボットテーブルや関数の方が適切な処理
AIに任せるべき作業と人間が判断すべき作業を分けて考えることが、この組み合わせをうまく機能させるポイントになりそうです。
よくある質問と回答
Q1. ChatGPTとCopilotのどちらを使えばいいですか?
どちらもM言語の生成に対応しています。Microsoft 365を利用している場合はCopilot(有料版)がExcelと連携しやすい可能性があります。一方、ChatGPTは無料版でもM言語の生成・エラー解説に十分対応できることが多いようです。最新の機能・料金は各公式サイトでご確認ください。
Q2. M言語を全く知らなくてもAIで代替できますか?
基本的な結合・整形処理であれば、M言語の知識ゼロでもAIを使って動くコードを得られる可能性があります。ただし、エラーが出たときに「何が問題か」を判断するための最低限の読み解き力は身につけておくと、作業がスムーズになると思います。
Q3. 社内の機密データをAIに貼り付けても大丈夫ですか?
これは非常に重要な点です。業務データをAIに入力する際は、必ず社内のセキュリティポリシーを確認してください。多くの企業では個人情報・機密情報の外部AIへの入力を禁止しています。AIへの入力はデータ構造(列名・型・サンプル行)のみにとどめ、実データは貼り付けないという運用が現実的かもしれません。
まとめと次のステップ
Power QueryのデータM言語の壁は、AIを「翻訳者」として活用することで大幅に低くなる可能性があります。やりたい処理を日本語で整理してAIに伝え、生成されたコードを検証・調整するという流れが、現場で使いやすいアプローチかもしれません。
今日試してほしい具体的なアクションは一つだけです。現在手作業で行っているCSV結合処理を一つ選んで、この記事のプロンプト例①をそのまま使ってAIに投げてみてください。生成されたコードがそのまま動かなくても、エラーメッセージをAIに貼り付けて修正依頼する流れを体験するだけで、「使えるかもしれない」という実感が得られるはずです。
Excel・データ分析プロンプト集をnoteで公開中
本記事では基本的なプロンプト例を紹介しましたが、
noteでは関数・マクロ・分析プロンプトの実践テンプレート集を公開しています。
コピペしてすぐ使える完全版です。
