先日、米Microsoft社が「Python in Excel」のパブリックプレビューを発表しました。
「Introducing Python in Excel: The Best of Both Worlds for Data Analysis and Visualization」https://techcommunity.microsoft.com/t5/microsoft-365-blog/introducing-python-in-excel-the-best-of-both-worlds-for-data/ba-p/3905482(参照日:2023年8月24日)
上記プレビュー記事を拝見する限り、パートナー企業さんからも好評を得ています。
この記事では、「Python in Excelに関するパブリックプレビュー」を拝見した際に、「魅力的だと感じた点」や「機能リリース後に、最大限メリットが得られるためにはどうしたら良さそうか」をまとめたものです。
内容は、Pythonやプログラミングに馴染みのない方にも、なるべく分かりやすくを意識しております。
※ なお、Python in Excelで搭載されている機能とその挙動については、筆者が調査した時点(参照: 2023/8/24)での内容に基づくものであり、今後のアップデート次第では内容の解釈が変わる可能性があること、ご承知おきください。
どんな機能が魅力的か?
まずは「Python in Excel」のプレビューにあたり、どのような機能が実装予定なのかを抑えておく必要があります。特に大きな魅力を感じた点を、以下2つ挙げました。
1.テーブルデータの選択から、データをインタラクティブに「DataFame」としても扱える
2.選択したセル内で「Pythonの処理コード」を実行できる
1.テーブルデータの選択から、データをインタラクティブに「DataFrame」としても扱える
そもそもとして、どういうことか。
イメージしやすいように、プレビュー記事には「動画が埋め込み」されておりますので、ざっと把握したい方は直接動画をご覧いただければ幸いです。(0:17~0:29あたり)
動画の該当箇所につき、DataFrameとして取り扱うまでの流れを言語化しますと、
1.Excelの関数を呼び出す要領で `=py` とセルに打ち込む
2.テーブルデータを範囲選択する
3.範囲選択されたテーブルデータが、DataFrameとして取り込まれる
上記のフローにて、DataFrameを扱えるようになっています!
DataFrameというのは、今回の説明の範囲内では「Pythonというプログラミング言語でデータ分析をしやすくするための、データのまとまり」くらいに抑えておけば、差し支えないです。
では、なぜDataFrameとして扱えるようになるとメリットがあるのかというと、ずばり「他のライブラリと連携しやすくなり、データの可視化や統計的分析に繋げやすくなる」からです。
こうした機能の追加により、「Excel上に眠っていたデータを、Excel上で操作しているユーザが主体で、データの可視化や統計的分析まで実行しやすくなる場が整備された」と言えるでしょう。
2.選択したセル内で「Pythonの処理コード」を実行できる
実行までの流れは、動画の1:00 ~ 1:10 で紹介されています。
Pythonの処理コード実行までのフローにおいて、他の実行環境(例. ブラウザ、コードエディタ、アプリ)に遷移することなく、Excelシート上で完結しており、かつPythonの処理コードが「明示的に記述」されていることにGoodボタンを押したくなりました!
ユーザがExcelに記録したデータに対し、機能側が割り込みで追加処理を提供し、「データ分析を行う前処理のイメージ」をつかみやすくするメリットが生まれる、といえるでしょう。
画像「Introducing Python in Excel: The Best of Both Worlds for Data Analysis and Visualization」https://techcommunity.microsoft.com/t5/microsoft-365-blog/introducing-python-in-excel-the-best-of-both-worlds-for-data/ba-p/3905482(参照日:2023年8月24日)より引用。(説明のため、一部文字による強調を入れております)
機能実装における「裏の狙い」を推察してみる
ソフトウェアやアプリケーションに限る話ではありませんが、何か新しい機能が実装される背景には「既存の機能のみだと技術的に問題がある」ので、「その問題を解決するために新しい機能が実装」されます。
Excelは30年以上もの歴史があるソフトウェアです。今回のような「大規模な機能実装」の背景には、筆者の予想だと「少なくとも4つの理由」があるのではないかと推察します。
1.Excelファイルに保持されたデータを、統計的分析に回すためのイメージが掴めていないユーザは多いのではないか?
2.Excelファイルを外部のプログラム・ライブラリで取り扱おうとしたときの、前提であるプログラム実行環境の構築でつまづくユーザは多いのではないか?
3.クラウド版Excelで保持されたデータの利活用が事例として少ないのではないか?(あるいは、まだまだ事例の浸透が確認できず、クラウド版Excelのメリットが見いだせていないユーザは多いのではないか?)
4.ネームバリューのあるExcelに、「ユーザからは見えない、割り込みの追加処理を機能として付与」したとしても、直接Pythonの処理コードが実行できるようになると幸せになるユーザは多いのではないか?
Python in Excelのような機能の実装は「ロードマップの序盤にすぎない」でしょうし、今後どのように展開していくのかは、大変興味深いです。
おわりに
最後に余談ですが、筆者のまわりから次のような質問を伺いまして、その回答を以下に載せておきます。
(類似の質問内容を複数個伺い、需要がありそうと判断したため、こちらに共有した次第です)
Q. Excelマクロ(VBA)とどう違うのか?
A. 少なくともプレビュー記事・動画を拝見した範囲内ではありますが、以下3点の点で「Python in Excelの機能のほうが優位性がある」と推察します。
1.実行に限り、記述言語の知識がほとんどなくても処理がまわる(≒ Pythonの文法の知識がなくても)
2.ユーザが見ているシート上で実行でき、プログラム・コマンド実行の画面(ターミナル、黒い画面)に遷移する必要がない
3.インタラクティブに処理を実行できている(マウス、キーボードで実行可能)
なお、これら優位性の違いは「記述言語の仕様に関わらず抽出されたもの」なので、「VBAとPythonの、どちらが優れているかを指摘していない」ことを、強調しておきます。
Q. Python in Excelの一般リリース後、機能のメリットを最大限に受け取るためにはどうしたらよいか?
A. Excelファイルにて保持されているデータを、「プログラムが処理しやすくなるように整理しておく」に尽きます。Pythonの処理コード実行は「ユーザからは見えない、割り込みの追加処理で行われる」としても、「Pythonの処理コードにデータとして渡す」ことに変わりはないので、処理側でエラーが発生しないように(思っていたのと違う結果にならないように)整理しておくと良さそうです。
たとえば、次の具体的なルールにもとづき「Excelのシート上に記録したデータ」を整理するとよいでしょう。
1.そのデータは、そもそも「データの可視化」「統計的分析」に渡す必要のあるデータか?(機能のお試しを除いて)
2.そのデータを用いて、何をさせたいかが明確か?(例. 経時変化を追跡したデータであり、データを可視化させたい。ある商品の月ごとの売上データであり、機械学習モデルの検証データとして利用したい、など。)
3.上記1.2.のクリアした上で、列指向型のテーブルデータとしての前処理がなされているか?(例. 列方向にまとめた商品価格のデータ(カラム)は、すべて半角であり、すべて数字であり(空白・記号などがひとつも入っていない)、すべて単位が揃っているかどうか、などを精査する。)