大量のデータを分析する時に、Excelの分析機能を使うばかりでなく、Pythonやその他プログラミング言語で、独自分析プログラムを組める人もいます。そのような人は、多くの場合、Excelやテキスト・ファイルを「道具箱」がわりに使い、.xlsxや.csvファイル内に格納した大量の元データを、プログラム・エディタへと呼び出して使います。
しかし、2028年8月にベータ版が公開されたPython in Excelというツールは、Excelのセルの中へコードを直接書いてExcelを操作しよう!、というめずらしい機能で、Pythonエンジニアたちの間で話題になっています。
今回は、2024年7月現在Insider Program(開発中プログラムを試用できるコミュニティ)のみで配布されている、このPython in Excelがどんなものなのかを調べてみました。
プログラムの力でExcelを操作します
しかし、VBAマクロとは異なります
Pythonは、1991年にオランダのプログラマーによって開発された、比較的歴史の浅いスクリプト言語(*)です。しかし、少ないコードで簡潔なプログラムを書けることや、専門的なライブラリ(関数やパッケージデータ)が豊富にあることなどから、多くのエンジニアに支持され、TIOBEプログラミングコミュニティインデックスで2023年4月に、”人気No.1プログラミング言語だ”と発表されました。
(*)スクリプト言語;コンパイルなどの複雑な手順を不要とする、比較的簡単に利用できるプログラミング言語の総称。代表的なスクリプト言語に、Pythonの他、Javascript、Ruby、PHPなどがあります。
Python in Excelは、このスクリプト言語であるPythonをMicrosoft excelのセル内で記述・実行させられるようにした機能です。
「Excel内で動かせるプログラム」というと、まず真っ先にVBA(Visual Basic for Applications)を思い浮かべると思いますが、VBAとPython in Excelとは全く別の機能です。
VBAが、Microsoft Office(Excel、Wordなど)専用のプログラミング言語であるのに対して、Pythonは非常に汎用性が高く、Excel操作以外にも、Web開発、データ分析、機械学習など、幅広い用途に使用可能です。
むしろ、現時点では、Pythonで操作できるExcelや他のOfficeソフトの範囲は限定的なので、用途に合ったスクリプトが書ける場合以外は、VBAにOfficeソフトを操作させた方がよいでしょう。 それでは、具体的にこのPython in Excelを、どのように使うのかみてみましょう。
Python in Excelでは、セル内へコードを直接入力します
Python in Excelは、Microsoft 365のInsider Programへ参加したユーザーだけに提供される機能です。使用するためには、Insider Programへサインインし、Excel新規ワークシート→[ファイル]→[アカウント]→[Microsoft 365 Insider(プレビュー版)]へサインアップします。
ワークシートの設定をこのように変更すると、[数式]タブのリボンに、[Pythonの挿入]というコマンドが表示されるようになります。
特別な関数式 =PY( ) を任意のセルに入力することでも、そのセルはPythonコード入力モードに切り替わります。
プログラミング入門者最初のコード”Hello, World!”表示だって、もちろん =PY() を使ってPythonで記述することができるのですが、それだけでは面白くないので、Python関数を定義するコードを、セル内へ書いてみましょう。
プログラム記述にミスやエラーが生じた場合には、即座にエラー・メッセージが右サイド・ウインドウに表示されますので、プログラム全体を作り終えてからバグ探索をする必要がなく、コード修正はとても容易です。
Excelで作図がむずかしいグラフも、Python in Excelのシンプルなコードでカンタンに表現できます
四則演算も、Excel(表計算ソフト)が得意とするデータ加工法ですから、わざわざPythonコードを書く必要はありません。
しかし、Excelでは作れない(もしくは、むずかしい)データ加工が、Python in Excelを使うと実現できる可能性もあります。その代表例が、Pyhton in Excelのデータ・サンプル集にも収録されている、ペアプロット図の作成でしょう。
[数式]タブ→[Pythonの挿入]→[Pyhtonサンプルを試す(T)]をクリックし、右サイド・ウインドウに表示される5つのサンプルコードのうち、[ペア プロットを作成する]の画面で、[+サンプルの挿入]をクリックしてください。
ペアプロット(散布図行列)は、データ分析の際によく利用されるグラフで、複数の散布図やヒストグラムをタテヨコに併記して俯瞰するための資料です。1つずつのグラフ解釈は、1枚のグラフを読み込めばわかりますが、たとえば複数の説明変数について「どの変数を使用するのが適しているか」、「どの変数が強い相関を示すか」などは、複数グラフを比較することで、はじめて視覚的に理解できます。
このペアプロットを、1つずつのグラフからExcel作図機能で生成していくことはかなり面倒ですし、VBAでこの作図を実現しようとすると、膨大なコードを記述しなければならないでしょう。
しかし、豊富な作図用ライブラリを活用できるPython In Excelでは、ライブラリを呼び出す適切なコマンドを打てば、わずか10行未満のシンプルなプログラムで、この複雑なグラフを自動生成してしまうのです。
(サンプルは、3種類のアヤメの花びら、がくの長さと幅から、それぞれの種の分布状況や相関を概観するための資料です。)
まとめ;Python in Excelは、プログラミング入門にも、複雑な分析・作図にも対応しています
冒頭でご説明したように、Python in Excelは、2024年7月現在はまだMicrosoft 365 Insider Program参加者のみが使える機能です。
ただ、もしあなたのパソコンが「使える」環境にあるならば、一度試してみると、とても面白いですよ。セルの中でプログラムのコードを書くというのも斬新だし、ExcelやVBAではできそうもないことが、リアルタイムにエラーを発見しながら、Pythonを使って実現できますから。
現時点では、「Python in Excelにできること」は、「Pythonでできること」のごく一部です。特に、requestsやurllibライブラリなど、インターネットへアクセスするためのライブラリが使用できないため、Pythonユーザーがよく活用するスクレイピングなどの作業には利用できません。
しかし、本来Pythonが得意とするデータ分析系の豊富なライブラリ群は一通り読み込みできますので、うまく使いこなせば、Excelだけの時よりも、深いデータ分析や観察ができるようになるでしょう。
ソフト自体もまだベータ版ですから、作業も”トライアル”とわり切って、セル内にコードをタタキ込んでみてください。
Excelだけでは気づかなかった、意外な新発見!に出会える可能性もありますよ!!