Python in Excelを使ってみた(エンジニアブログ)

こんにちは。バックエンドエンジニアのカズです。

今日はExcelのベータ版に提供されているPython in Excelを紹介します。

Python in Excelとは?

Python in Excelとは、その名前の通り、Excel内でPythonコードを実行できる機能です。

PythonコードはMicrosoft Cloud上のAnacondaで実行されます。

セルに直接Pythonコードを入力することで、Pythonコードがクラウド上で実行され、データの加工などを行うことができます。

Python in Excelの利用方法

現在はプレビュー版であり、Microsoft 365 Insider Programのベータチャネルでしか提供されておらず、Windows版でのみ利用することができます。詳しくはこちらを確認してください。

Python in Excelの使い方

セルに =py( と入力するか、数式リボンから Pythonの挿入 を選択してください。

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版などにも実装されることを期待したい機能の一つだと考えています。

SHARE

  • facebook
  • twitter

SQRIPTER

AGEST Engineers

AGEST

記事一覧

AGESTのエンジニアが情報発信してます!

株式会社AGEST

  • 新規登録/ログイン
  • 株式会社AGEST
#TAGS人気のタグ
RANKINGアクセスランキング
NEWS最新のニュース

Sqriptsはシステム開発における品質(Quality)を中心に、エンジニアが”理解しやすい”Scriptに変換して情報発信するメディアです

  • 新規登録/ログイン
  • 株式会社AGEST