1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Copilot と自然言語で Power BI レポートを作る: Power BI Agentic 実践記

1
Posted at

はじめに

Power BI のレポート作成は、ついに「画面上で一つずつビジュアルを配置する」だけの作業ではなくなりました。

今回は、VS Code の GitHub Copilot に自然言語で要件を伝え、架空のカフェチェーンの売上データから、セマンティック モデルと 6 ページの Power BI レポートを作成しました。完成したのは、10 テーブル、18 メジャー、9 リレーションシップ、60 ビジュアルを持つ PBIP プロジェクトです。

また、自然言語でレポートを作って終わりではありません。成果物は PBIP / PBIR / TMDL としてテキスト ファイルに残るため、要件変更に応じて編集、差分を確認、検証、Power BI Desktop で表示を確認する、という反復的な開発を行うことができます。

この記事では以下 4 点をご紹介します。

  1. Power BI Agentic とは何か
  2. 実際にどのような指示を出したのか
  3. どのように検証したのか
  4. 完成したレポートから何が分かるのか

本記事の内容と画面は 2026 年 9 月 14 日時点のものです。Power BI Agentic 関連のツールには Public Preview のものが含まれます。仕様や導入手順は今後変更される可能性があります。また、本記事は個人の見解であり、所属組織を代表するものではありません。

Power BI Agentic とは

Microsoft Learn の概要では、Power BI Agentic は、GitHub Copilot などの AI コーディング エージェントを使って Power BI を開発するための「エージェント スキル」と「ツール」の組み合わせとして説明されています。

Power BI Agentic は、GitHub Copilot などのエージェントにスキルとツールを追加し、自然言語の依頼を、実際に動くセマンティック モデルやレポートへ変換するための開発アプローチです。Power BI Desktop 内の新しいボタンや単独の機能ではありません。

推奨されている powerbi-authoring プラグインを導入すると、Power BI 開発に必要なスキル群とツールの設定がまとめて追加されます。個別の手順書やツールを一つずつ探して連携するのではなく、次の役割を一つの開発フローで利用できます。

  • Agent skills: モデル設計、DAX、レポート計画・デザイン、PBIR 編集、検証などの進め方を GitHub Copilot に教える
  • Power BI Modeling MCP Server: セマンティック モデルへ接続し、テーブル、列、メジャー、リレーションシップなどを調査・作成・変更する
  • レポート作成 CLI: PBIR のページやビジュアルを作成し、定義に問題がないか検証する
  • Power BI Desktop Bridge: 実行中の Power BI Desktop と通信し、レポートの再読み込みやスクリーンショット取得を行う

セットアップ後は、GitHub Copilot が依頼内容に合うスキルを読み込み、必要なツールを選びます。利用者は「どのツールを呼び出すか」ではなく、「誰が何を判断したいか」「どのようなレポートにしたいか」「どの数値定義を守るべきか」を自然言語で伝えます。

導入時には、プラグインや MCP Server のインストール、ローカル環境への接続設定が必要です。今回の環境では、必要なツールやプラグインの確認からインストールまでを GitHub Copilot が進め、利用者は「インストールしてよいか」といった確認に応答します。

ただし、環境や権限によっては手動セットアップが必要になる場合があります。また、モデルの変更やクエリの実行時には、VS Code や Copilot 上で承認を求められることがあります。最終的な指標の定義や分析結果の妥当性を判断するのは人です。

つまり、目的と判断基準を与え、必要な操作を承認するのは人、環境構築を含む実装と検証の反復を進めるのが GitHub Copilotという役割分担です。

今回の流れを簡略化すると、次のようになります。

今回作ったもの

題材は、全国カフェチェーンの取引データです。データセットは架空のもので、GitHub Copilot を使って作成しました。

表1 : サンプルレポートの構成概要

項目 内容
データ 300 取引、23 列、欠損なし
期間 2026 年 1 月 1 日から 2026 年 9 月 9 日
モデル 10 テーブル、18 メジャー、9 リレーションシップ
レポート 6 ページ、60 ビジュアル、1920 x 1080
形式 PBIP / PBIR / TMDL
主な切り口 売上、利益、商品、顧客、チャネル、時間帯、天候、施策

9 月は 9 日までしかデータがない部分月です。そのため、総売上などの累計 KPI には 9 月分を含める一方、月次推移と前月比は 8 月までの完了月だけで計算しました。

AI に作成を依頼する場合も、このような業務上の解釈を人が明示することが重要です。

必要なもの

今回の方法を再現するには、次の環境を用意します。

  1. Power BI Desktop を実行できる Windows 環境
  2. Visual Studio Code
  3. GitHub Copilot Chat
  4. Node.js 18 以降
  5. Microsoft の powerbi-authoring プラグイン、または対応する Power BI Agent Skills
  6. Power BI Modeling MCP Server
  7. 分析対象のデータと、PBIP プロジェクトを保存する作業フォルダー

PBIP と PBIX で利用できるデータ ソースそのものに違いはありません。ここで必要なのは、レポートとセマンティック モデルを PBIP 形式のテキスト ファイルとして保存・編集できる作業フォルダーです。

GitHub Copilot CLI を使う場合、公式の導入例は次のとおりです。

copilot plugin marketplace add microsoft/skills-for-fabric
copilot plugin install powerbi-authoring@fabric-collection

インストール後に Copilot を起動し、/skills で semantic-model-authoring などのスキルが表示されることを確認します。VS Code を使う場合は、公式ページの VS Code 向け手順に従って、同じ Power BI authoring 環境を導入します。

Power BI Modeling MCP Server は、VS Code 拡張機能から導入する方法が推奨されています。組織アカウントでは「MCP servers in Copilot」が管理者によって無効化されている場合があります。ツール一覧に MCP Server が表示されない場合は、拡張機能の状態と組織の管理設定を確認してください。

実際の作成手順

1. PBIP プロジェクト用の作業フォルダーを開く

VS Code で、データ、生成スクリプト、PBIP プロジェクトをまとめて置く作業フォルダーを開きます。

PBIP では、レポート定義とセマンティック モデルがテキスト ファイルとして分かれて保存されます。このため、エージェントによる編集、Git による差分確認、レビュー、再生成、問題発生時の修正を行いやすくなります。

今回の最終的な構成は次のようになりました。

CafeChainPerformance.pbip
CafeChainPerformance.Report/
  definition.pbir
  definition/
    report.json
    pages/
CafeChainPerformance.SemanticModel/
  definition.pbism
  definition/
    model.tmdl
    relationships.tmdl
    tables/

この構成では、.pbip がプロジェクトの入口となり、.Report フォルダーに PBIR のレポート定義、.SemanticModel フォルダーに TMDL のセマンティック モデル定義が保存されます。

2. 最初に要件を自然言語で伝える

いきなり「いい感じのレポートを作って」だけで始めず、対象者、意思決定、データ品質、必要なページ、デザイン、検証条件をまとめて伝えます。

実際に使える初回プロンプトの例です。

この CSV を使って、全国カフェチェーンの経営層向け Power BI レポートを作成してください。

目的:
- 売上と利益の全体像を把握する
- 店舗・商品・顧客・チャネル・時間帯・天候・キャンペーンから改善機会を見つける

要件:
- PBIP / PBIR 形式で作成する
- まずデータ品質、粒度、日付範囲、欠損、重複、売上・原価・利益の整合性を確認する
- スター スキーマの Import モデルを作る
- 暗黙メジャーに頼らず、主要 KPI を明示的な DAX メジャーにする
- 経営サマリー、売上分析、商品分析、顧客分析、時間・運営分析、施策分析の 6 ページを作る
- 全ページに期間、地域、店舗の共通スライサーとページ ナビゲーションを置く
- 1920 x 1080、日本語、カフェらしい落ち着いた配色にする
- アクセシビリティのため、全ビジュアルに代替テキストを設定する
- 作成後に PBIR を検証し、Power BI Desktop で全ページを再読み込みしてスクリーンショットを確認する

不明点は推測せず、データと要件から確認してください。

プロンプトでは、見た目だけでなく、データ品質、数値定義、成果物の形式、検証方法まで伝えます。これにより、生成対象を単なる画面ではなく、編集・検証可能な Power BI プロジェクトとして扱えます。

3. データとモデルを先に固める

Copilot は最初に CSV を確認し、300 件の取引 ID がすべて一意、欠損セルが 0 件、利益 = 売上 - 原価 の不一致が 0 件であることを確認しました。

その後、取引ファクトに対して、日付、店舗、商品、顧客タイプ、チャネル、決済方法、天候、キャンペーン、時間帯の各ディメンションを接続しました。主要な 18 メジャーには、意味が分かる説明と表示形式を付けています。

モデルに対する追加指示の例です。

モデルを Copilot から理解しやすくしてください。
テーブル、列、メジャーに業務上の意味が分かる説明を追加し、分析に不要なキー列と加算可能な元列は非表示にしてください。
主要メジャーだけで分析できる Business Analysis パースペクティブも作成してください。

今回の環境では、Power BI Modeling MCP Server が Copilot のツール一覧に表示されず、エージェントから利用できませんでした。そのため、Copilot は MCP Server 経由でモデルを操作する代わりに、ローカルの TMDL ファイルを生成・編集する方法へ切り替えました。

このように、利用できるツールに制約があっても、PBIP のテキスト形式を活用すれば、モデル定義とレポート定義を確認・編集・検証できる点は実用的でした。

4. レポート設計を具体化する

レポートの色は、売上をエスプレッソ ブラウン、利益をリーフ グリーン、補助情報をブルー、施策をアンバーに統一しました。ページごとに問いを一つ置き、KPI、比較、詳細という順で読める構成にしています。

デザイン調整で使った指示の例です。

経営層が短時間で判断できるデザインに調整してください。
各ページは、上段に共通スライサーとナビゲーション、その下に KPI、下段に分析ビジュアルを配置してください。
売上は茶、利益と利益率は緑、施策はアンバーで統一し、装飾より比較のしやすさを優先してください。
円グラフは避け、順位は横棒、正確な比較はマトリクス、2 指標の関係は散布図を使ってください。

5. 自然言語で問題を修正する

最初の生成で終わりではありません。スクリーンショットを見ながら、業務上の誤解や見づらさを自然言語で修正します。

今回、特に重要だった修正指示は次のとおりです。

2026 年 9 月は 9 日までの部分月なので、月次推移に含めると減少して見えます。
総売上などの累計 KPI には 9 月を含めたまま、月次トレンドと前月比は完了月の 8 月までにしてください。
ページの注記にも、この計算ルールが分かるように記載してください。
商品分析は、売上ランキングだけではなく「売れる商品」と「儲かる商品」の違いが分かるようにしてください。
横軸を売上、縦軸を利益率、円の大きさを販売数量にした商品ポートフォリオを追加し、商品別利益ランキングも残してください。
顧客分析の決済方法と注文チャネルは、構成比だけでなく、取引件数、総売上、平均客単価、平均満足度を正確に比較できるマトリクスにしてください。
時間・運営分析に、曜日と時間帯の組み合わせが分かるヒートマップを追加してください。
売上が大きいセルほど濃くなる条件付き書式を設定し、曜日と時間帯は業務上の順序で並べてください。

このように、編集対象、変更理由、残すもの、期待する見え方を一緒に伝えると、単なる配置変更ではなく、意図を保った修正になりやすくなります。

6. 生成、検証、目視確認を繰り返す

今回のプロジェクトでは、Copilot が Node.js のジェネレーターを作成しました。このスクリプトを実行すると、レポート定義や関連ファイルを再生成できます。

ジェネレーターを残しておくことで、手作業による編集だけに依存せず、同じ入力と定義から PBIP プロジェクトを再現しやすくなります。

node .\build-cafe-executive-report.js
node .\CafeChainPerformance\validate-project.js
powerbi-report-author validate ".\CafeChainPerformance\CafeChainPerformance.Report" --pretty

PBIR の検証に通ったら、Power BI Desktop Bridge で対象の Power BI Desktop プロセスを確認し、レポートを再読み込みして全ページを撮影します。

powerbi-desktop status
powerbi-desktop reload --pid <Power BI Desktop の PID>
powerbi-desktop screenshot-all --pid <Power BI Desktop の PID> --output-dir ".\CafeChainPerformance\screenshots"

最終確認では、6 ページすべてについて、空のビジュアル、エラーバナー、重なり、文字切れ、KPI 欠落がないことを確認しました。PBIR の検証はエラー 0 件で、Power BI Desktop 上でも全ページが実データ付きで描画されました。

このように、生成、定義検証、Desktop での再読み込み、画面確認を繰り返せることが、PBIP / PBIR / TMDL 形式で成果物を残す大きな利点です。

完成したレポート

1. 経営サマリー

スクリーンショット 2026-09-11 111502.png

総売上は 238,275 円、総利益は 153,825 円、利益率は 64.56%、平均客単価は 794.25 円、平均満足度は 4.25 です。直近の完了月である 8 月は、7 月比で 8.3% 増加しています。

経営層が最初に見るページとして、KPI だけでなく「店舗」「商品」「会員・施策」の 3 つの示唆を文章で表示しました。月次推移は部分月の 9 月を除外し、累計値との定義の違いも明示しています。

2. 売上分析

スクリーンショット 2026-09-11 111551.png

完了月の売上・利益推移、地域別売上、店舗別売上ランキングを比較するページです。東京・品川店が 58,551 円で売上首位となり、東京 2 店舗と横浜店で全売上の約 64% を占めています。

店舗ポートフォリオでは、売上規模だけでなく利益率と利益額も同時に見られるため、「売れているが利益率が低い店舗」と「規模は小さいが収益性が高い店舗」を区別できます。

3. 商品分析

スクリーンショット 2026-09-11 111718.png

商品ポートフォリオの横軸は売上、縦軸は利益率、円の大きさは販売数量です。カフェラテは売上首位、アールグレイティーは利益率 74.47% で、売上規模と収益性が必ずしも一致しないことが分かります。

ランキングと散布図を組み合わせることで、「何が売れたか」だけでなく、「どの商品を伸ばすと利益に効くか」という会話につなげています。

4. 顧客分析

スクリーンショット 2026-09-11 111851.png

会員売上比率は 43.82%、モバイル注文比率は 10.67% です。顧客タイプ別のチャネル構成と満足度を可視化し、下段のマトリクスでは決済方法と注文チャネルを正確な数値で比較できます。

モバイル注文は 32 件と件数は少ない一方、平均客単価は 857 円で 3 チャネル中もっとも高く、拡大余地を検討できる結果になりました。

5. 時間・運営分析

スクリーンショット 2026-09-11 112015.png

時間帯、平日・週末、天候別に需要を確認します。曜日と時間帯のヒートマップには売上規模に応じた色の濃淡を設定し、ピークとなる組み合わせを一覧で探せるようにしました。

単純な総額比較だけでなく、取引件数と平均客単価も合わせて確認できるため、人員配置や販促時間帯を考える入口になります。

6. 施策分析

スクリーンショット 2026-09-11 112102.png

キャンペーンの売上、利益、満足度、割引率を比較します。下段のポートフォリオは、横軸が平均割引率、縦軸が利益率、円の大きさが売上です。

例えば会員特典は 5% の割引がありながら利益率 65.8% を維持しています。一方で、結果は施策の因果効果を証明するものではありません。対象顧客や実施時期などの条件差を考慮し、次の検証仮説を作るための画面として利用します。

自然言語で編集するときのコツ

目的と判断を先に書く

「グラフを追加して」ではなく、「店舗の規模と収益性を同時に比較し、改善対象を判断したい」と伝えると、適切な軸やツールチップまで設計しやすくなります。

数値の定義を書く

売上が税込か、値引後か、利益が粗利か営業利益か、取引件数が行数か一意件数かを明示します。今回の売上は値引後売上、取引件数は取引 ID の Distinct Count です。

例外条件を書く

部分月、未完了期間、施策なし、欠損値などは、見た目が正しくても誤読の原因になります。今回もっとも重要だったのは、「9 月は累計には含めるが、月次比較から除外する」という条件でした。

検証まで依頼する

自然言語で生成できることと、正しいレポートが完成することは同じではありません。プロンプトに「PBIR 検証」「Power BI Desktop の再読み込み」「全ページのスクリーンショット確認」を含めると、実装から確認までを一つの作業として扱えます。

一度にすべてを決めすぎない

最初に対象者とページ構成を決め、次にモデル、次にビジュアル、最後に書式と微調整へ進む方が、変更理由を追いやすくなります。今回も、円グラフやツリーマップを、比較しやすい棒グラフやマトリクスへ置き換えながら仕上げました。

補足と注意点

AI の出力は必ず検証する

LLM は、不正確な DAX、存在しないフィールド、誤ったビジュアル設定を生成する可能性があります。構文検証だけでなく、期待値との照合と画面確認が必要です。特に経営指標は、データ所有者による定義確認を行ってください。

PBIP をバージョン管理する

PBIP / PBIR / TMDL はテキストで差分を確認できます。作業前にバックアップまたは Git のブランチを作り、変更内容をレビューできる状態にしておくと安心です。

生成スクリプトも残しておくと、同じ入力から同じ構成を再現しやすくなります。自然言語で要件を変更した後も、生成物、差分、検証結果を追跡できるようにしておくことが重要です。

機密データを扱う前にポリシーを確認する

Power BI Modeling MCP Server 自体はローカルで動き、既存の資格情報と権限を使います。ただし、取得したメタデータ、スキーマ、クエリ結果は MCP クライアントを経由して LLM プロバイダーへ送信される可能性があります。

組織の AI 利用規程、データ分類、利用するモデルのデータ処理条件を事前に確認してください。

最小権限と確認プロンプトを使う

MCP はユーザーが持つ権限の範囲で操作します。必要以上の権限を与えず、モデル変更前とクエリ実行前の確認を有効にすることを推奨します。--skipconfirmation は、自動化の影響とバックアップを理解した場合にだけ使用します。

今回の結果はサンプルデータの観察結果

店舗、商品、施策に関する示唆は、今回の 300 件のデータに基づく記述です。相関や集計差を、そのまま施策の因果効果として扱わないようにします。

まとめ

GitHub Copilot と Power BI Agentic を組み合わせると、自然言語から次の作業までを一つの流れで進められました。

  • データ品質の確認
  • スター スキーマと DAX メジャーの作成
  • PBIP / PBIR レポートの設計と生成
  • 自然言語によるページやビジュアルの修正
  • CLI による定義検証
  • Power BI Desktop での再読み込みとスクリーンショット確認

単にレポートを自動生成できるだけではなく、自然言語で伝えた分析上の意図を、編集可能な PBIP / PBIR / TMDL の成果物として残し、実装、検証、画面確認のループへ渡せることは、Agentic Power BIの大きな価値です。

「9 月は部分月なので比較から外す」「売上だけでなく利益率も見る」といった業務上の判断を、生成後にも追跡・修正・検証できるため、要件変更にも対応しやすくなります。

Power BI Agentic は、Power BI 開発者を不要にする仕組みというより、設計、実装、検証の反復を速くし、人が指標の意味と意思決定に集中するための開発スタイルだと感じました。

みなさんも是非お試しください。

参考資料


検証環境: Node.js v24.19.0、powerbi-report-author v0.1.4、powerbi-desktop v0.1.2。完成レポートは 2026 年 9 月 10 日に生成・検証し、本記事は 2026 年 9 月 11 日に作成しました。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?