ExcelでPythonが使えるようになったことをご存知の方も多いでしょう。
Python in Excelは、Microsoft 365に追加された革新的な機能で、Excelのセル内で直接Pythonコードを実行できるようになりました。
これまでExcelの関数だけでは難しかった高度なデータ分析や機械学習、美しいグラフの作成が、Pythonの豊富なライブラリを使って簡単に実現できます。
この記事では、Python in Excelの導入方法から基本的な使い方、実践的なサンプルコードまで、初心者の方にもわかりやすく解説します。
【本記事の信頼性】
- 執筆者は元エンジニア
- 大手プログラミングスクールのWebディレクター兼ライターを経験
- 自らも地元密着型のプログラミングスクールを運営
プログラミングスクール
■Webエンジニアの育成に特化 ■自社開発企業への転職成功率がダントツ ■ハイスキルを求める人に最適 |
|
■サポートは半永久的 ■単価80万円以上の講師陣 ■AWSやJavaに強い |
|
■受講料完全無料 ■最短1か月で卒業 ■教室への通学も可能 |
Python in Excelとは
Python in Excelは、MicrosoftがExcelに統合した革新的な機能です。
Excelのセル内で直接Pythonコードを記述でき、Pythonの計算はMicrosoftクラウドで実行され、結果がワークシートに返されます。
これにより、Excelの使い慣れたインターフェースを使いながら、Pythonの強力なデータ分析機能を活用できるようになりました。
この機能の最大の特徴は、AnacondaによるPythonライブラリのコアセットが提供されており、データ分析の簡素化、パターンや隠れた洞察の発見、プロットによるデータの視覚化が可能という点です。
pandasやmatplotlib、NumPyなどの人気ライブラリが標準で利用できるため、複雑な統計処理や機械学習モデルの構築も実現できます。
Python in Excelの導入方法
この項目ではPython in Excelの導入方法について詳しく解説していきます。
事前準備と環境確認
Python in Excelを使用するには、まず以下の環境要件を満たしているか確認してください。
- インターネット接続(Python in Excelはクラウドで実行されるため必須)
- Microsoft 365サブスクリプション(Business、Enterprise、PersonalまたはFamily)
- 対応するExcelのバージョン
Windows版Excelの場合、Current Channelでバージョン2408(ビルド17928.20114)以降、Monthly Enterprise Channelでバージョン2408(ビルド17928.20216)以降が必要となります。
Mac版では、バージョン16.96(ビルド25041326)以降で利用可能です。
PersonalおよびFamilyサブスクリプションの場合は、Current Channelのバージョン2405(ビルド17628.20164)以降でプレビュー版として利用可能となっています。
Educationサブスクリプションをお持ちの方は、Microsoft 365 Insider Programに参加することで利用できるはずです。
Python in Excelの有効化手順
Python in Excelを有効化する手順は非常にシンプルで、以下の2つの方法があります。
【方法1:リボンから有効化】
1.Excelを開き、任意のセルを選択
2.「数式」タブをクリック
3.「Python の挿入」ボタンをクリック
【方法2:PY関数を使用】
1.任意のセルに「=PY」と入力
2.オートコンプリートメニューから「PY」を選択、またはTabキーを押す
=PY(
いずれかの方法で、Pythonモードが有効になると、セルと数式バーの左側に緑色の「PY」アイコンが表示されます。
これでPythonコードを直接セルに入力できるようになります。
トラブルシューティング
Python in Excelが使用できない場合は、以下の点を確認してください。
Excelのバージョンを確認するには、「ファイル」→「アカウント」→「Excelのバージョン情報」で確認できます。必要なビルド番号を満たしていない場合は、最新版に更新してください。
特にPersonalやFamilyサブスクリプションの場合、Current Channelに設定されているか確認が必要です。過去に更新チャネルを変更したことがある場合は、Current Channelに戻してください。
Python in Excelはクラウドで実行されるため、安定したインターネット接続が必須となります。ファイアウォールやプロキシ設定が原因で接続できない場合もあるので、IT管理者に相談してみてください。
Python in Excelで何ができる?主な活用シーン
Python in Excelのできることや主な活用シーンは、以下の通りです。
高度なデータ分析と統計処理
Python in Excelでは、pandasライブラリを使用した高度なデータ分析が可能です。
例えば、データの基本統計量を取得する場合、以下のようなコードを使用できます。
# データフレームの作成
df = xl("A1:D100", headers=True)
# 基本統計量の表示
df.describe()
このコードは、A1からD100の範囲のデータを読み込み、平均値、標準偏差、最小値、最大値、四分位数などの統計情報を一度に取得します。
Excelの標準関数では複数の関数を組み合わせる必要がある処理も、Pythonなら1行で実現できるのが魅力でしょう。
データの可視化(グラフ、チャート作成)
matplotlibライブラリを使用することで、Excelの標準グラフよりも柔軟で美しいグラフが作成できます。
import matplotlib.pyplot as plt
# データの読み込み
df = xl("A1:C50", headers=True)
# 散布図の作成
plt.figure(figsize=(10, 6))
plt.scatter(df['売上'], df['利益'], alpha=0.6)
plt.xlabel('売上(万円)')
plt.ylabel('利益(万円)')
plt.title('売上と利益の相関関係')
plt.grid(True, alpha=0.3)
plt.show()
このコードを実行すると、売上と利益の相関関係を示す散布図が作成されます。
透明度(alpha)の調整やグリッドの表示など、細かなカスタマイズが可能です。
機械学習モデルの構築と予測
scikit-learnライブラリを使用して、機械学習モデルの構築も可能となっています。
以下は、線形回帰モデルの例です。
from sklearn.linear_model import LinearRegression
import numpy as np
# データの準備
df = xl("A1:B100", headers=True)
X = df[['広告費']].values
y = df['売上'].values
# モデルの構築と学習
model = LinearRegression()
model.fit(X, y)
# 予測値の計算
predictions = model.predict(X)
# 結果の出力
results = pd.DataFrame({
'実際の売上': y,
'予測売上': predictions,
'誤差': y - predictions
})
results
このコードは広告費から売上を予測する線形回帰モデルを構築し、予測結果と実際の値との誤差を計算しています。
大規模データの効率的な処理
Python in Excelの大きな利点は、Excelの行数制限(約100万行)を超えるデータも処理できることです。
pandasのgroupby機能を使用すれば、大量のデータを効率的に集計できます。
# 月別売上の集計
df = xl("A1:D10000", headers=True)
df['日付'] = pd.to_datetime(df['日付'])
# 月別集計
monthly_sales = df.groupby(pd.Grouper(key='日付', freq='M'))['売上'].sum()
monthly_sales
このコードは、1万行のデータから月別の売上合計を瞬時に計算します。
Excelのピボットテーブルでも同様の処理は可能ですが、Pythonならより複雑な条件での集計も簡単に実装できるでしょう。
外部データソースとの連携
Python in Excelでは、Power Queryとの連携により外部データソースからのデータ取得も可能です。
2025年のアップデートにより、認証が必要なデータソースからのデータ更新もサポートされました。
# CSVファイルの読み込み(Power Query経由)
df = xl("Table1[#All]", headers=True)
# データのクレンジング
df['価格'] = df['価格'].str.replace('¥', '').str.replace(',', '').astype(float)
df['カテゴリ'] = df['カテゴリ'].str.strip()
# 処理済みデータの出力
df
このように、外部データの読み込みから前処理まで、一連の流れをPythonで自動化できます。
Python in Excelが使えない場合の確認事項
Python in Excelが使えない場合は、以下の点を確認してみてください。
Microsoft 365のライセンス種類の確認
Python in Excelが使えるか使えないかは、お使いのMicrosoft365のライセンスの種類によって異なります。
Microsoft 365 Business
Microsoft 365 Enterprise
Excel for the web(BusinessおよびEnterprise)
Microsoft 365 Personal
Microsoft 365 Family
Microsoft 365 Education(Insider Program参加が必要)
注意点として、デバイスベースのライセンス(ユーザーではなくデバイスに割り当てられるライセンス)や共有コンピューター認証を使用している場合は、Python in Excelはサポートされません。
更新チャネルの設定確認
更新チャネルの確認と変更は以下の手順で行えます。
- Excelを開き、「ファイル」→「アカウント」を選択
- 「Office更新プログラム」セクションで現在の更新チャネルを確認
- 「更新オプション」→「今すぐ更新」で最新版に更新
Current Channel(最新チャネル)に設定されていることを確認してください。
Semi-Annual Enterprise Channelでは現在利用できません。
地域・言語設定の影響
Python in Excelは世界中で利用可能ですが、一部の地域では展開が遅れる場合があります。
また、Excelの表示言語が日本語以外に設定されている場合、機能の表示や動作に影響が出ることがあるでしょう。
言語設定の確認は、「ファイル」→「オプション」→「言語」で行えます。
表示言語と編集言語の両方が適切に設定されているか確認してください。
Python in Excelの使い方
Python in Excelの実際の使い方について、詳しく紹介していきます。
PY()関数の入力方法
PY()関数は、ExcelでPythonコードを実行するための基本的な関数です。
以下の構文で使用します。
=PY(code, [type])
【パラメータの説明】
code: 実行したいPythonコード(必須)
type: 戻り値の型(省略可能)
0: Excel値として返す(デフォルト)
1: Pythonオブジェクトとして返す
基本的な使用例を見てみましょう。
# 単純な計算
=PY("2 + 3 * 4")
# 結果: 14
複数行のコードを記述する場合は、Ctrl+Enter(Mac: Cmd+Enter)で改行できます。
=PY("
import math
radius = 5
area = math.pi * radius ** 2
area
")
Excelデータの読み込みと操作
Excelのデータを読み込む際は、xl()関数を使用します。
この関数により、Excelの範囲をPandasのDataFrameとして取り込めます。
# 基本的な読み込み
df = xl("A1:D100", headers=True)
# テーブルからの読み込み
df = xl("Table1[#All]", headers=True)
# 名前付き範囲からの読み込み
df = xl("SalesData", headers=True)
headers=Trueを指定すると、最初の行がヘッダーとして扱われます。
データの操作例を見てみましょう。
# データの読み込みと基本操作
df = xl("A1:C50", headers=True)
# 特定の列の選択
sales_data = df['売上']
# 条件によるフィルタリング
high_sales = df[df['売上'] > 1000000]
# 新しい列の追加
df['利益率'] = df['利益'] / df['売上'] * 100
# 結果の出力
df
セル範囲をPythonに取り込む方法
セル範囲をPythonに取り込む際のベストプラクティスをいくつか紹介します。
1. 動的範囲の指定
# 現在の領域全体を取得
df = xl("A1").CurrentRegion
# スピル範囲の取得
df = xl("A1#")
2. 複数範囲の結合
# 複数の範囲を結合
df1 = xl("A1:C10", headers=True)
df2 = xl("E1:G10", headers=True)
# 横方向に結合
combined = pd.concat([df1, df2], axis=1)
# 縦方向に結合
combined = pd.concat([df1, df2], axis=0, ignore_index=True)
3. データ型の自動認識と変換
# データ読み込み時の型指定
df = xl("A1:D100", headers=True)
# 日付列の変換
df['日付'] = pd.to_datetime(df['日付'])
# 数値列の変換
df['金額'] = pd.to_numeric(df['金額'], errors='coerce')
# カテゴリ型への変換
df['部門'] = df['部門'].astype('category')
Python in Excelでは、セル参照を直接Pythonコード内で使用することもできます。
編集モードでセルをクリックすると、自動的に適切な参照が挿入されるため、手動で範囲を入力する必要はありません。
まとめ
Python in Excelは、ExcelユーザーにPythonの強力なデータ分析機能をもたらす画期的な機能です。
複雑な統計処理、美しいデータビジュアライゼーション、機械学習モデルの構築など、これまでExcelだけでは困難だった処理が可能になりました。
導入も簡単で、適切なライセンスとバージョンさえあれば、すぐに使い始めることができます。