Microsoft、ExcelにPythonを導入予定
(theverge.com)- Microsoftが、Excel内でPythonベースのデータ分析・可視化を行える統合機能をパブリックプレビューとして提供開始
- 別途インストールせずにExcelのリボンからPythonにアクセスでき、既存の数式・グラフ・PivotTableと組み合わせて結果を調整できる
- 新しいPY関数がPythonデータをスプレッドシートのグリッドに表示し、Anacondaとの協力によりpandas、statsmodels、MatplotlibなどをExcelで利用可能
- 計算はローカルではなくMicrosoft Cloudで実行された後、ワークシートに戻され、MatplotlibやSeabornベースの可視化も作成できる
- パブリックプレビューはMicrosoft 365 InsidersのBeta ChannelでWindowsから開始され、プレビュー終了後は有料ライセンスなしでは一部機能が制限される
Excelに組み込まれたPython分析
- MicrosoftがExcelにPython統合機能を追加し、スプレッドシート内でデータを操作・分析できるようにした
- ユーザーはExcelのリボンからPythonに直接アクセスでき、使い慣れたExcel環境を離れずに高度な分析作業を続けられる
- Pythonで作成したプロットやライブラリの結果は、Excelの数式、グラフ、PivotTableと組み合わせてさらに調整できる
別途インストール不要の組み込み方式
- Python統合は、Excelの組み込みコネクタとPower Queryの一部として提供される
- 追加ソフトウェアのインストールや別途アドイン設定なしでアクセス可能
- 新しいPY関数は、PythonデータをExcelスプレッドシートのグリッド内に表示する
Anacondaライブラリと可視化
- MicrosoftはエンタープライズPythonリポジトリであるAnacondaと協力し、Excelで主要なPythonライブラリを使えるようにした
- 利用可能なライブラリには以下が含まれる
- pandas
- statsmodels
- Matplotlib
- ExcelユーザーはPythonデータを基に、数式、PivotTable、グラフを作成できる
- MatplotlibやSeabornなどのグラフライブラリで、以下の可視化を生成できる
- heatmap
- violin plot
- swarm plot
計算はMicrosoft Cloudで処理
- PythonコードはExcelスプレッドシート内で記述・使用されるが、計算処理はローカルのExcelではなくMicrosoft Cloudで行われる
- 実行結果は再びExcelワークシートに返される
提供範囲とライセンス条件
- Python in Excelのパブリックプレビューは、Microsoft 365 InsidersのBeta Channelで提供される
- 初期提供対象はWindowsに限定される
- Microsoftは今後、他のプラットフォームにも拡大する予定
- プレビュー期間中はMicrosoft 365サブスクリプションに含まれる
- プレビュー終了後は、有料ライセンスがない場合、一部機能が制限される
1件のコメント
Hacker News のコメント
以前 Excel 開発者として働きながら Python を Excel に入れようとして失敗した立場からすると、今日のこのニュースはうれしい驚きだ
7年ほど前、Excel チームを離れる機会があったのだが、当時の上司の上司が、私が Python を Excel に入れたがっていることを知って、残ればその仕事を任せると言ってくれた。6か月のつもりだった仕事が約3年のプロジェクトになり、Python 側はぼやけたまま、結局 JavaScript カスタム関数を Excel に入れる方向でリリースされた
Python も AzureML v1 ベースで「クラウド上」で実行していたが、ローカル実行するかどうかをめぐって議論が行き来した。AzureML のパートナーチームでは組織再編、再ローンチ、再採用、PM の離脱があり、別のパートナーチームが、私たちのコードを JavaScript を外部プロセスで実行するために使えることに気づいたため、Python よりもその機能のリリースに多くの時間を使うことになった
中核となる作業は、Excel の計算エンジンを変更して関数が非同期計算できるようにすることで、リモートエンドポイントが JavaScript であれ Python であれ、あるいは他の何かであれ、計算している間もユーザーがスプレッドシートの別の部分で作業を続けられるようにするものだった。以前は計算中にスプレッドシートがロックされ、時間がかかり終わりが見えない計算には向いていなかった。私たちが作ったものの一部が今回の機能に入っているのか気になる
“Recalc or die”
Office.js の問題は、平均的な Excel ユーザーにとって npm 依存関係の塊のせいで始めるのが難しすぎる点で、プロの開発者でもかなり苦労する。ユーザーが Node.js を使わなくて済むようにできた点には満足している: https://docs.xlwings.org/en/latest/pro/server/officejs_custo...
今は放棄したプロジェクト: https://alphawolfxl.com/
ベータテストを頼んだ何人かに「会社は金を払わないだろう」と言われ、時間を無駄にしたという印象を受けてやめたのだが、今これを見ると複雑な気分だ
全体として、Excel で JavaScript がどう動くのかを見られる実際に動くコードが不足していて、今はほとんど「フクロウの描き方」レベルに感じる
Microsoft Cloud だけを使う方式ではなく、ローカルでの Python 実行もサポートしてくれるとうれしいが、それでもこの機能だけで Excel を大きくモダン化できそうだ
こうしたデータを見せるための Web サイト需要をなくせるかもしれない。以前の職場で社内の数人だけが使う分析 Web サイトを作ったことがあるが、そのときこの機能があれば十分これで置き換えられたと思う
SQL Server でデータマートを作り、ETL ツールで分析に必要なデータを流し込めばいいだけだと何度も説明している。元データにはアクセスさせなければいい。それなのに皆、妙な目で見てきて、代わりに数百万ドル規模の Tableau 導入プロジェクトをやろうとする。ユーザーはそれを望んでいないのに、本当にあきれる
あるいは Excel Web/デスクトップのフィードバック UI から送ってもよい。PM たちはそのフィードバックをすべて読んでいる
すべてのユーザーに一貫した体験を保証できる。時間がたつにつれてバージョンが分岐していく中で、各自がローカルの Python ディストリビューションを維持し、Excel と動作することを保証しなければならないと考えるとぞっとする
Excel ブックを他のユーザーと共有したときに、計算がそのまま動作するようにできる。ばらばらのローカル Python インストールに依存するとそれはできず、ユーザーは大いにいら立つだろう
セキュリティも大きい。ローカルユーザー権限で Python コードを実行できる Excel ファイルを開く状況を想像すればよい
2つ目の点にも全面的に同意する。既存の IT インフラと統合される社内アプリを Python で作るのは、控えめに言ってももどかしい作業だ。Excel はほとんどどこでもすでに IT インフラの一部であり、プログラム可能なリアクティブキャンバスだ
開示: この機能の設計チームで働いている
ここではマクロはクライアントマシン上でマルウェアを実行する経路と見なされており、そのリスクを受け入れるほどの効用は大きくないと考えられている
ここには明らかに危険信号が見える。Excelの本質的な力は、ブックが独立して存在できることから来ているのに、これでプロセスが永遠にクラウドに縛られることになる。
3年後に亡くなった同僚のブックを開かなければならないとき、この統合機能をベンダーが引き続きサポートしてくれるかどうかに左右される。
どんな業務でも最初のステップが「ソフトウェアを再び動くようにする方法を探す」になるのはひどい。過去数十年の間に、Excel、Outlook、Wordのさまざまなアドインで何度も経験してきたし、それらのアドインは処理自体をリモートで行っていたわけでもなかった。
だから、ときどきバックアップを実際に復元してみたり、こうした場合には重要なファイルを検証したりすることが重要だ。
「ExcelのPython」に興奮したが、「クラウドで実行」という文言を見て冷めた。これはクラウドサービスに縛りつける以外の理由がなさそうに見える。安全でないプリンターインクから私を守ってくれる、という感じにあまりにも似ている。
普段はMS Office製品が好きで、好意的に見ようとするほうだ。ロックイン以外に、Pythonをクラウドで実行するよう求めるもっともらしい良い理由があるなら教えてほしい。
M$から離れるべき時点は、もう5年ほど前に過ぎていたと思う。WindowsからOfficeまで、すべての製品にすでに反消費者的な機能が入っている。
もちろん、Excel+Pythonのパワーユーザーは自分のPythonランタイムを持ち込み、維持することに慣れている可能性が高いという点も理解している。
iOSやAndroid端末でExcelを使う人もいる。この方式なら、そうした人たちもスプレッドシート内のPythonを使い、読むことができる。
2005年に友人たちとResolver Systemsという会社を作り、Python対応スプレッドシートのResolver Oneを作った。
残念ながら市場では伸びず、方向転換してオンラインのコーディング・ホスティング環境であるPythonAnywhereを作ったが、これはかなりうまくいき、昨年Anacondaに買収された。そして今、円環が閉じたというわけだ。
はっきりさせておくと、Anaconda内でこの機能を作っているチームは、PythonAnywhereチームとは完全に別だ。同じ人たちだったなら、ハリウッド的な話として完璧だったのに。
ただ、ResolverがIronPythonベースだったため、きちんと動かないライブラリがかなりあったのが問題だった。
PythonAnywhereのWebアプリ上でそのまま小さな修正ができるのが本当に良くて、GCP/AWSを使い始めたときにはそういう機能がかなり恋しかった。
「Pythonの計算はMicrosoft Cloudで実行される」という文言を見て、同僚が冗談で「MicrosoftですらWindows上のローカルPythonインストールを管理できないのかもね……」と言っていた。
でも、Microsoftが本当にローカルPython環境の設定問題をついに解決し、ExcelがOS全体の標準Pythonパッケージマネージャーになる姿を想像すると面白い。
$ excelpip install fastapi==9.11.23fastapi version 11.09.2023 を検索中…問題領域を深く掘り下げ、オープンソース側から出てきたものを超えるパッケージマネージャーを再発明すると思っていた。
その代わり今あるのは、Windows Update、Windows Features、Microsoft Store、Software Center、wingetだ。wingetはMicrosoftが作ったWindows向けパッケージマネージャーで、さらに別のMicrosoft製Windows向けパッケージマネージャーからインストールしなければならないツールだ。
$GOV_AGENCYは、世界とどう協業するのだろうか。LibreOffice はかなり前に空気を読むべきだった。原理的には Python スクリプティングは可能だが、あまりにも面倒で雑然としており、改善のロードマップもなさそうに見える。
同じ警告は Linux デスクトップとそのアプリ全般にも当てはまる。ますます多くのプロプライエタリなプラットフォームがクラウドベースで、しばしば Python API を通じて既存アプリに高度な「AI」機能拡張を入れてくるだろう。
オープンソース界のさまざまな流れがあまりにもサイロ化されているのが惜しい。部分の総和を超える潜在力が無駄になっている。
LibreOffice のスプレッドシートと Apple Numbers で一番不満なのは、非連続選択範囲のコピー/貼り付けの扱いだ。
例えば 5 行 3 列のデータで
1 2 3、7 8 9、a b cの行を選択してコピーし、d e fの下に貼り付けると、Excel は選択した行だけを詰めて貼り付ける。LibreOffice と Numbers は間の空行まで保持する。この動作を変える設定は見つけられなかった。Excel も逆に間隔の保持を望む人にはいら立つかもしれないが、私は間隔を保持したいと思ったことがほとんどないので、LibreOffice と Numbers は不便だ。
人々があまり気にしない理由は、オフィススイートの最も人気のあるユースケースが Microsoft のファイル形式と相互運用することだからだ。
LibreOffice 内でスクリプトを実行するには、APSO script organiser が推奨されている: https://extensions.libreoffice.org/en/extensions/show/apso-a...
プログラミング言語を使ったことのない高齢ユーザー層が年を取り引退していく中で、Excel に Python を組み合わせる方法を学ぶ人は、結局 Python のほうを好むようになるだろう。より柔軟で拡張可能だからだ。
基本的な計算表の用途以外に Excel を使う理由はない。誰かがスプレッドシートを求めてきたら、Python で生成を自動化し、二度と手で扱わなくて済むようにする。
がっかりだ。
「Excel の Python は現在、Windows でベータチャネルを実行しているユーザーに提供されています。この機能はビルド 16.0.16818.2000 から Windows 用 Excel にまず展開され、その後ほかのプラットフォームに提供されます。」[1]
「Excel の Python は Windows 用 Excel で利用できます。この機能は Mac 用 Excel、Web 用 Excel、iPad 用 Excel、iPhone 用 Excel、Android 用 Excel では利用できません。サポートされていないプラットフォームでは Python を含むブックを表示することはできますが、Python セルを再計算するとエラーが表示されます。」[2]
[1] https://techcommunity.microsoft.com/t5/excel-blog/announcing...
[2] https://support.microsoft.com/en-us/office/introduction-to-p...
「Python の計算は Microsoft Cloud で実行される」だなんて、遠慮しておく。
ちょっと待って。LibreOffice には何年も前から Python があったのに誰も気にせず、代わりに「本物の仕事」には 100% 互換の VBA が必要だと文句を言っていた。あの人たちは今どこにいる?
LibreOffice VBA が Office VBA と互換だったなら、古い Windows システムをどこかに保管し続ける理由はなかったはずだ。
私たちがこれをやっている理由は金を稼ぐためで、Excel で動かない Excel スプレッドシートを買いたい人はいない。
Linux で LibreOffice Calc を使って作業しており、Excel は Linux サポートがゼロなので、問題なく顧客に送れる程度の互換性があればいいのだが、まだその近くにも達していない。
存在を知らなければ人々は使わない。
他のものに慣れていれば、人々はそれを求める。