
更新:2024.09.17
こんにちは。バックエンドエンジニアのカズです。
今日はExcelのベータ版に提供されているPython in Excelを紹介します。
※正式リリース2024年9月16日(現地時間)
米Microsoftより「Python in Excel」の一般公開(GA)が発表されたため記事を更新しています。
▼Microsoft公式ブログ記事「Python in Excel – Available Now」はこちら
Python in Excelとは?
Python in Excelとは、その名前の通り、Excel内でPythonコードを実行できる機能です。
PythonコードはMicrosoft Cloud上のAnacondaで実行されます。
セルに直接Pythonコードを入力することで、Pythonコードがクラウド上で実行され、データの加工などを行うことができます。
Python in Excelの利用方法|導入方法
※ベータ版(プレビュー版)時点での情報です。現在(2024.09.17時点)ではExcelで文書を起動することで数式リボンに「Pythonの挿入」が表示されています。
現在はプレビュー版であり、Microsoft 365 Insider Programのベータチャネルでしか提供されておらず、Windows版でのみ利用することができます。詳しくはこちらを確認してください。
Python in Excelの使い方
セルに =py(
と入力するか、数式リボンから Pythonの挿入
を選択してください。

選択すると、セルと数式バーにPYという表示が表れて、コードを受け付けられる状態になります。

その上で、セルもしくは数式バーにコードを記述しCtrl+Enterを押下することでコードが実行されます。
Python in Excelの基本機能
記述したコードの実行結果はセルに出力されます。

また、 ["A", "B"]
などの型を持つコードの場合、 Pythonオブジェクト
を選択すると、Pythonオブジェクトの型が表示されます。

リストなどの多次元配列に対応している場合、そのセルだけではなくデータの形状によって他のセルにも展開されて表示されます。



以下の図は、A1セルに x = 1
を入力し、そのほかのセルに x += 1
を入力した状態です。

基本的に、Python in Excelにおいての計算は、列順で計算が行われた後、行が移動し再度列順で計算が行われます。ただし、計算方法の設定において手動を選択した場合は、その法則に従わず計算が行われます。
上の例では、A1→B1→C1→A2→…の例で計算が行われています。
下の例では、上の表を作成した後にE1に式を設定しています。
本来であればE1に式を設定した場合はC1の後に計算が行われるため結果は 4
となりますが、計算方法を手動に設定しているため、A6の 13
となる計算結果の後に演算を行っているため、結果は 14
と出力されています。


Pythonコード内でのセルの指定
Pythonコード内でセルにあるデータを利用する際は、 xl()
関数を用いて指定します。

利用できるPythonライブラリ
Python in Excelの実行環境は、前述のとおりAnacondaを利用しているため、基本的にはAnacondaに搭載されているライブラリを利用できます。また、予めインポートされているライブラリもあり、初期化ボタンを選択すると、そのライブラリを確認することができます。


その他の利用できるライブラリに関しては、こちらを確認してください。
コンソール出力
print()
やエラーコードなどは診断画面に出力されます。また、エラーのため実行できなかったセルには、 #PYTHON!
が表示されます。



関数の利用
セル内で関数を定義し、その他のセルでその関数を利用することも可能です。
以下の例は、引数を2つ与え、その引数を足し合わせて返却する関数を作成し、その関数に対して2つの引数を与えた結果です。


他にできること
グラフ描画を行うことのできるmatplotlibを利用して線形回帰や散布図を生成したり


データ分析やデータの前処理を行うことのできるscikit-learnなどのライブラリを活用することで一般的な機械学習をすることもできます。
また、Excel関数で出力させた値に対して、Pythonコードで処理を行うことも可能です。
Python in Excelでできないこと
Pythonをローカルで実行する
Pythonはクラウド実行のみの環境となっているため、今後ローカルで実行する予定も無いとの発表があります。(公式ブログ)
Pythonから外部ファイルへアクセスする
Python in Excelはクラウド実行となっているため、そのままの状態ではローカルファイルへのアクセスはできません。Power Queryを使用することで外部データを使用することができます。(公式)
また、requestsなどのライブラリを使用したインターネットへのアクセスも不可能です。
まとめ
今まではExcelファイルを使って分析をするためにPythonからExcelを読み込んで行っていたものが、一部だけですが、Excel単体で行えるようになったことは大きいのではないかと思います。
今後、Windows版だけではなく、Mac版などにも実装されることを期待したい機能の一つだと考えています。
#PythonInExcel #Python #Excel