「Excelの集計、もう関数の組み合わせだけでは限界かも」。
そう感じたことはありませんか。数万行のデータを回すと重くなる、ピボットでは痒いところに手が届かない、VBAはメンテが怖い。そんな悩みを一気に解決してくれるのが Python in Excel です。ExcelのセルにPythonコードを書いて、その場で実行できる新機能です。
しかも今は、Pythonの文法を一切知らなくても大丈夫。Copilot(Microsoftの生成AIアシスタント) に日本語で指示すれば、必要なPythonコードを自動生成してくれます。あとはそれをセルに貼り付けるだけです。
この記事では、Python in Excelの使い方を「Pythonを書かない前提」で丁寧に解説します。VBA・GAS・標準関数との使い分け早見表、pandasとmatplotlibを使ったノーコード運用フローの実演も紹介します。「コードの中身を理解しなくていいのか?」という素朴な疑問にもお答えします。
読み終わる頃には、明日からの集計作業が一段ラクになるはずです。
Python in Excelとは?VBAとの違いをざっくり理解する
まずは Python in Excel がどんな機能なのか、ざっくり全体像をつかみましょう。Pythonを知らない方でもイメージできるように、仕組み・他ツールとの違い・必要な環境の3点に絞って解説します。
セルにPythonコードを入力するだけ——仕組みの概要
Python in Excelは、Excelのセルに =PY(...) と入力することでPythonコードを実行できる機能です。書いたコードはローカルPCではなく、Microsoftが用意した Anaconda(Pythonのデータ分析向け実行環境) のクラウド上で実行されます。結果だけがExcelのセルに返ってくる仕組みです。
コードは数式バー上部の「Pythonエディタ」から入力します。構文はシンプルです。
=PY(python_code, return_type)
return_type は 0 でExcel値として返し、1 でPythonオブジェクトとして返します。Excelデータを参照したいときは xl() というカスタム関数を使います。
# テーブル全体を参照
df = xl("Sales[#All]", headers=True)
# セル範囲を参照
values = xl("A1:C10", headers=True)
デフォルトで pandas(表形式データ処理)、numpy(数値計算)、matplotlib(グラフ描画)、seaborn(統計可視化)、statsmodels(統計モデル)の5つが読み込み済みです。追加で30以上のライブラリも import 文で利用できます。
なお、PY関数 は他のExcel関数と組み合わせて使えない点だけ覚えておきましょう。
VBA・GAS・標準関数・Python in Excel の使い分け早見表
「結局どのツールを使えばいいの?」という疑問にお答えするため、4つのツールを4軸で比較した早見表を用意しました。
| 観点 | 標準関数 | VBA | GAS | Python in Excel |
|---|---|---|---|---|
| 得意な処理 | 軽い集計・参照 | Excel操作の自動化 | Googleサービス連携 | 大量データ分析・可視化 |
| 処理規模 | 〜1万行 | 〜10万行 | 〜数万行 | 数十万行以上も可 |
| 必要スキル | 関数の知識 | VBA文法 | JavaScript知識 | Copilot使えればOK |
| 環境依存 | Excel全般 | Excel(デスクトップ) | Googleスプレッドシート | M365有料+Win/Mac/Web |
ポイントは右端の「必要スキル」です。VBAやGASは文法習得がハードルでしたが、Python in ExcelはCopilotに丸投げできるため、事務職でも実質的に導入の壁がありません。
使うのに必要な環境(Microsoft 365 サブスクリプション)
利用には 有料のMicrosoft 365ライセンス が必要です。無料ライセンスやデバイスベースライセンスでは使えません。
対応OSはWindows・Mac・Excel on the webです。iPad・iPhone・Androidは非対応なので注意してください。Windowsなら Current Channel Version 2408(Build 17928.20114)以降が最低ビルドです。Macなら Enterprise/Business向けは Version 16.96(Build 25041326)以降、Family/Personal向けは Beta Channel Version 16.95(Build 25021921)以降が対象です。
2025年後半からはOffice 365 E1、Microsoft 365 Business Basic、Office 365 F3にも対応が拡大しています。以前「対象外だった」方も、一度ライセンスを確認し直してみる価値があります。
Copilotを使えばPythonを書かなくていい理由
Python in Excelの本当の価値は、Copilot in Excel with Python という連携機能と組み合わせたときに発揮されます。ここではCopilot連携の中身と、ノーコード運用の全体像を見ていきます。
「Copilot in Excel with Python」とは何か
Copilot in Excel with Pythonは、自然言語のプロンプトからPythonコードを自動生成してくれる機能です。「売上データをカテゴリ別に集計して」と日本語で頼むだけで、CopilotがpandasのコードとPYセルを用意してくれます。
対応プラットフォームはWindowsとWebで、日本語にも対応済みです。2025年4月からは推論モデルを使う「Think Deeper」モードも追加されました。複雑な分析の場合は新しいワークシートに分析プランごと自動挿入してくれます。
さらに2025年12月からは Agent Mode(エージェント型実行) がExcel for webで一般提供されました。2026年1月にはWindows/Macへも展開されています。「計画→実行→検証→修正」を自律的にループするモードで、一問一答のCopilotより踏み込んだ使い方ができます。
なお、旧 Copilot App Skills のPython連携は2026年2月末で廃止されました。今後はAgent ModeまたはAnalystへの移行が推奨されています。
ノーコード運用フローの全体像
Python in Excel × Copilotのノーコード運用は、次の3ステップに集約されます。
- Copilotにプロンプトを渡す(例:「このテーブルを地域別・月別に集計してほしい」)
- 生成されたPythonコードを確認する(コードの中身は読めなくてOK)
- コードをPYセルに貼り付けて Ctrl+Enter で実行する
このフローの良いところは、Pythonの文法を一切覚えなくていいことです。Copilotが出力したコードを「そのまま動かす」だけで結果が得られます。VBAのように「動かないときにデバッグする」という苦行も最小限で済みます。
ノーコード運用フロー実演①:pandasで大量データを集計する
ここからは実際の操作を見ていきましょう。まずは pandas(表計算ライブラリ)を使った大量データの集計例です。
手順ステップ解説
たとえば10万行の売上データ(テーブル名 Sales)があり、「地域別・商品カテゴリ別の売上合計」を出したいとします。
ステップ1: Copilotアイコンをクリックし、チャットを開きます。対象のテーブルをアクティブにしておくと精度が上がります。
ステップ2: 次のようなプロンプトを入力します。
Salesテーブルを「地域」と「商品カテゴリ」でグループ化して、
売上合計を降順で並べた集計表を作ってください。
Python in Excelで動くコードにしてください。
ステップ3: Copilotが次のようなコードを返してきます。
df = xl("Sales[#All]", headers=True)
result = (
df.groupby(["地域", "商品カテゴリ"])["売上"]
.sum()
.reset_index()
.sort_values("売上", ascending=False)
)
result
ステップ4: 任意のセルで =PY( と入力してPythonエディタを開き、上記コードを貼り付けます。Ctrl + Enter で実行すると、集計結果がExcelのテーブルとして返ってきます。
コードの中身は読めなくても構いません。大事なのは「動いて正しい結果が返ってきたか」を確認することです。
使えるプロンプト例
そのまま使えるpandas系プロンプトをいくつか紹介します。
- 「
Ordersテーブルから2025年の月別売上推移を集計してください」 - 「
Customersテーブルから、購入回数が5回以上のリピーターだけ抽出してください」 - 「
Inventoryテーブルの商品別在庫回転率を計算してください」
コツは「テーブル名」「対象列」「やりたいこと」を明示することです。曖昧なプロンプトはCopilotも曖昧なコードを返します。
ノーコード運用フロー実演②:matplotlibでヒートマップを生成する
次は matplotlib(Pythonの定番グラフ描画ライブラリ)を使った可視化です。Excelの標準グラフでは作りにくいヒートマップを例に取ります。
手順ステップ解説
曜日×時間帯の売上ヒートマップを作る例です。
ステップ1: Copilotを開き、次のプロンプトを入力します。
Salesテーブルから曜日と時間帯のクロス集計を作り、
seabornでヒートマップを描いてください。
日本語フォントが文字化けしないようにしてください。
ステップ2: Copilotから返ってきたコード例です。
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "Meiryo"
df = xl("Sales[#All]", headers=True)
pivot = df.pivot_table(
index="曜日",
columns="時間帯",
values="売上",
aggfunc="sum",
)
sns.heatmap(pivot, annot=True, fmt=".0f", cmap="YlOrRd")
plt.title("曜日×時間帯の売上ヒートマップ")
plt.gcf()
ステップ3: コードをPYセルに貼り付けて実行します。ヒートマップが画像オブジェクトとしてセルに返ります。セルを右クリックして「セル上に表示」に切り替えると、セルからはみ出して大きく表示できます。
日本語が文字化けする場合は plt.rcParams["font.family"] = "Meiryo" の指定が効きます。seabornの場合は sns.set(font="Meiryo") も有効です。
使えるプロンプト例
- 「売上と広告費の相関を散布図で可視化してください」
- 「月別売上の推移を折れ線グラフにしてください。前年比も重ねてください」
- 「商品カテゴリ別の売上構成比を円グラフで描いてください」
コラム:コードの中身を理解しなくていいのか?
ここで多くの読者が気になる疑問にお答えします。「Copilotが生成したコードを意味もわからず使っていいの?」という点です。
ブラックボックス利用のリスクと許容範囲
結論から言うと、社内の定型集計レベルであればブラックボックス利用でOK です。ただし、次の3つのリスクは知っておいてください。
- ハルシネーション:Copilotが存在しない列名や関数を使ったコードを出すことがあります
- データ送信:Python in Excelはコードと参照データがMicrosoftのクラウドで実行されます。ローカル実行ではありません
- 結果の誤り:集計ロジックが微妙にズレていても、数字が出てしまうと気づきにくい
データセキュリティの面では、コードはハイパーバイザーで分離されたコンテナで実行されます。データは一時処理のみで保存されません。xl() 経由でしかExcelデータにアクセスできず、ローカルファイルへの直接アクセスもできません。
とはいえ、機密データを扱う場合は社内の生成AI利用ルールを必ず確認しましょう。詳しくは 生成AIを仕事で使うときの注意点チェックリスト15 と 生成AI社内ガイドラインの作り方 もあわせてご覧ください。
事務職が最低限確認すべきポイント
コードの文法まで理解する必要はありません。ただし、次の3点だけは必ず確認しましょう。
- 入力データ:
xl("...")で指定しているテーブル名・範囲は合っているか - 出力結果:返ってきた数字が既存集計と大きくズレていないか(抜き取りで検算)
- 列名:コード内の列名が実際のシートと一致しているか
この3点を押さえれば、ブラックボックス利用でも大きな事故は防げます。Copilot回答の正確性検証については AIの回答を信じる前に確認すること も参考になります。
よくある質問(FAQ)
Python in Excelは無料で使えますか?
いいえ。有料のMicrosoft 365ライセンス(Personal / Family / Business / Enterprise / Education)が必要です。無料ライセンスやデバイスベースライセンスでは利用できません。重い処理には有料アドオンライセンスが別途必要になる場合もあります。
Macでは使えませんか?
使えます。Enterprise/Business向けは Version 16.96(Build 25041326)以降、Family/Personal向けは Beta Channel Version 16.95(Build 25021921)以降のMac版Excelで対応しています。ただし、iPad・iPhone・Androidは非対応です。
VBAはもう不要になりますか?
いいえ、VBAには依然として役割があります。ファイル操作・他アプリ連携・UserForm・イベント駆動処理など、Excel操作の自動化はVBAの独壇場です。一方、Python in Excelは「大量データ分析」「高度な可視化」「統計処理」が得意です。適材適所で使い分けましょう。
まとめ:Python in Excel × Copilotで何が変わるか
Python in Excelは、「Pythonを書ける人だけの道具」ではなくなりました。Copilotに日本語で指示するだけで、pandasやmatplotlibの力を借りた高度なデータ分析が誰でもできます。
最後に、ポイントを整理しておきます。
- Python in Excel はセル内でPythonを動かせる機能。PY関数と
xl()で完結する - Copilot in Excel with Python に日本語プロンプトを渡せば、コードは自動生成される
- 事務職は コードの中身を読めなくてもOK。入力データ・出力結果・列名だけ確認する
- 利用には 有料Microsoft 365 が必要。Windows・Mac・Webに対応
- VBAは廃れない。大量データ分析だけPython in Excelに置き換えるのが現実的
まずは手元のExcelでCopilotを開き、「このテーブルをサマリーしてください」と話しかけてみてください。Pythonを一行も書かないまま、新しいデータ分析の世界が開けるはずです。
