2023年8月、ExcelでPythonを実行できる「Python in Excel」のベータ版が公開されました。本記事では、Python in Excelを実際に動かしながら、基本的な使い方について解説したいと思います。
なお、Python in Excelの概要、公開はいつなのか等については以下記事にて解説しています。
Python in Excelを使うには?
Python in Excelは、現在「パブリックプレビュー版」です。
これを使うには、Microsoft 365 Insiderプログラムに参加する必要があります(参考)。
Python in Excelの有効化
Python in Excelの初回使用時には有効化が必要です。
Excelを開き、数式タブから「Pythonの挿入」を押下します。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-750x376.png)
「Python in Excelを試す(プレビュー)」というダイアログが出ますので、「プレビューを試す」を押下します。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-2-750x544.jpg)
「ツアーをスキップ」または「Python in Excelツアー」を選択します。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-3-750x550.png)
「Python in Excelツアー」は、ガイドに従って使い方を一通り確認する内容となっています。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-4-750x458.png)
PY関数の使い方
Python in ExcelでPythonを実行するには、PY関数を使用します。
セルに直接「=PY」と入力するか、
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-5.png)
数式タブから「Pythonの挿入」を押します。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-6-750x353.png)
すると、数式のエリアがPythonモードになります。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-7-750x252.png)
PY関数の記法
数式エリアに「PY」と表示されている状態で、数式を記述します。
以下では、Excel内の「テストテーブル」という名前のテーブルを読み取っています。Excelを扱う際には、「xl(“F8”)」のように、xlの中に記述します。
sample_df = xl("テストテーブル[#すべて]", headers=True)
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-8-750x290.png)
数式を書き終わったら、Ctrl+EnterでPythonコードをコミットします。
数式を入れたセルに、DataFrameと表示されました。DataFrameというのは、PythonのPandasというライブラリのデータ構造で、行・列で扱う二次元のデータです。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-9-750x260.png)
ExcelのテーブルをDataFrameとして扱うことができるようになりました。
PY関数の実行結果の扱い方
PY関数の実行結果は、PythonオブジェクトまたはExcelの値として扱うことができます。
Excelの値として扱う
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-19-750x194.png)
Excelの値として表示する場合、型は自動的に変換されます。また、pandas.DataFrame と numpy.arrayはExcelのテーブルとして表示されます。
Pythonオブジェクトとして扱う
Pythonオブジェクトとして扱う場合、セルの右隣あたりにオブジェクトアイコンが表示されます。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-20.png)
必要に応じて選択することで、オブジェクトを視覚化したり、ワークブック内で再利用する際にオブジェクトへの参照を保持する目的で利用したいできます。
以下は、matplotlibでplt.show()を実行したものです。Imageオブジェクトとなっており、imageを選択するとグラフが表示されます。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-21-750x261.png)
オブジェクトに対する操作
PY関数の実行結果をPythonオブジェクトして扱う場合、それに対してさらにPY関数を使用してpythonの処理を実行することができます。
以下は、ExcelのテーブルをPandasのDataFrameにしたものです。
sample_df = xl("テストテーブル[#すべて]", headers=True)
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-9-750x260.png)
DataFrameに対して、pandasのdescribeで各列の統計情報(平均、標準偏差)を表示してみます。
sample_df.describe()
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-10-750x185.png)
科目ごとの平均点(mean)・最高点(max)などが表示されました。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-22-750x328.png)
ライブラリのインポート方法
Python in Excelでは、以下のライブラリはデフォルトでインストールされています。
- numpy(数値計算)
- pandas(データ解析)
- matplotlib(グラフ描画)
- statsmodels(統計解析)
- seaborn(データ可視化)
これら以外のライブラリは、Anaconda を介して使用できるものであれば追加でインポート可能です。
import matplotlib.pyplot as plt
from astropy import units as u
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-12-635x563.png)
その他
エラーの見方
Pythonコード内でエラーが発生した場合は、該当セルに注意アイコンが表示され、「診断」にエラー内容が表示されます。エラーメッセージは時系列で表示され、発生時刻も記載されています。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-11-750x242.png)
ただし、エラー行数までは出力されません。
printはセルではなくログに出力される
PY関数内でのprintは、セルには出力されません。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-15.png)
出力内容は、「診断」のログとして表示されます。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-16-750x334.png)
ログ出力(logging)は普通にログとして使える
では、loggingモジュールを使用したログ出力はどうなるのでしょうか?
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-17-1.png)
こちらも「診断」内にログとして出力されました。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-18-750x234.png)
関数は使えるの?
PY関数内で、Pythonの関数を使うことは可能です。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-13-750x328.png)
def 関数名~で普段通り書けばOKです。上記の実行結果は以下になります。
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-14.png)
スクレイピングはできるの?
Python in Excel内でスクレイピングを実行してその結果を図表にできれば便利そうですよね。しかし、Python in Excelではスクレイピングはできません。
import requests
from bs4 import BeautifulSoup
url = "https://news.yahoo.co.jp/"
res = requests.get(url)
![](https://prtn-life.com/wp-content/uploads/2023/09/python-in-excel-howto-23-750x181.png)
Python in Excelは、Microsoft Cloud上のセキュリティで保護されたコンテナーで実行されます。Pythonコードには、ネットワークアクセス権がありません。そのため、スクレイピングを実行しようとしても、Webページを取得する段階で失敗します。
まとめ
今回は、Python in Excelの基本的な使い方について解説しました。
Python in Excelについては、まだ情報があまり出ておらず、「使ってみたいけど、そもそも自分の環境で使えるのか分からない」「どんなことに使えるのか分からない」など、様々な疑問をお持ちの方も多いかと思います。
今後もPython in Excelを実際に操作してみて、分かったことを共有できたらと思います。
参考:anaconda.com
コメント