Excel + Pythonでデータ解析、集計が捗る!「Python in Excel」の紹介

This work is licensed under a Creative Commons Attribution 4.0 International License .
はじめに
自己紹介
-
Ryuji Tsutsui @ryu22e
-
神奈川県横浜市在住
-
Python歴は13年くらい(主にDjango)
-
Python Boot Camp、Shonan.py、GCPUG Shonanなどコミュニティ活動もしています
-
著書(共著):『 Python実践レシピ 』
昨夜行ってきた店

天文館の「 立ち飲み屋Kiritsu(キリツ) 」は焼酎が安くていい店でした。
今日話したいこと
-
Excelの新機能「Python in Excel」とはどんな機能か
-
どんな使い方をすると便利か
-
ちょっとしたテクニックも紹介
どんな人に聞いてほしいか
以下のいずれかに該当する人。
-
Excelを使ってデータ解析、集計を行っている人
-
Pythonを使ってデータ解析、集計を行っている人
-
Excelの新機能に興味がある人
(※Pythonの経験がなくても大丈夫です)
このトークをやるモチベーション
-
私は、Python Boot CampというPythonチュートリアルイベントで講師をやっている
-
Pythonに興味を持つ人を増やしたい
-
Python in Excelを知ってもらうことで、Pythonの使い道をイメージできる人がいるかも? という期待がある
トークの構成
-
Python in Excelの概要
-
使い方 & ちょっとしたテクニックを紹介
Python in Excelの概要
Python in Excelとは
-
=PY()
というExcel関数を使って、ExcelのセルにPythonコードを埋め込める -
「VBAをPythonで書けるようにする機能」ではない
-
2024年5月24日現在、Python in Excelはプレビュー段階の機能で、Windows版Excel(Excel for Windows)のみで利用可能
導入方法(1)
プレビュー段階の機能を利用するには、「Microsoft 365 Insider」のベータチャネルにサインアップする。
導入方法(2)
どんな仕組みか

PythonコードはMicrosoft Cloud上で実行される
セキュリティについて(1)
他人が書いた不正なコードの実行を防ぐため、以下の制限がある。
-
Excelの外にあるローカルリソースへのアクセス
-
ネットワークアクセス
-
数式、グラフ、ピボットテーブル、マクロ、VBA コードなど、Excelブック内の他のプロパティへのアクセス
セキュリティについて(2)
Python実行環境のセキュリティアップデートはMicrosoft Cloudがやってくれる。
セキュリティについて(3)
Pythonコードが含まれているExcelファイルの入手元がインターネットまたは信頼されていないソースの場合、これを開くと保護ビューが有効になり、Pythonは実行されない。
Power Queryについて
-
Pythonからのネットワークアクセスができないので外部リソースの読み込みはできない
-
その代わり、Power Queryを使って外部リソースのデータをセルに取り込んでからPythonで読み取ることはできる
使い方 & ちょっとしたテクニックを紹介
以下についてデモをやります
-
簡単な計算
-
範囲選択のやり方
-
「出力形式」とは
-
グラフの作成
-
「コアライブラリ」とは
-
ちょっとしたテクニック
(デモ)簡単な計算
-
=PY()
というExcel関数を使って、セルにPythonコードを埋め込む -
セルの内容を読み取るには、
xl()
関数を使う
(デモ)範囲選択のやり方
-
xl("A1:A5")
のようにセルの範囲を指定できる -
範囲選択すると、PandasのDataFrameオブジェクトを取得できる
(デモ)「出力形式」とは
=PY() Excel関数の出力形式には、以下の2種類がある。
- Pythonオブジェクト(デフォルト)
-
Pythonコードの実行結果をそのまま埋め込む出力形式。 [PY] アイコンが表示される。
- Excelの値
-
出力結果を人間に見せる際に使う出力形式。後述するグラフを作成する際にはこれを使う。
(デモ)グラフの作成
-
データは「テーブル」にしておくと便利
-
以下コードで Seaborn を使ってグラフを作成できる
sns.set(font="Meiryo") # 日本語フォントを指定
df = xl("テーブル1[#すべて]", headers=True)
sns.relplot(x="月", y="価格", data=df, kind="line")
(デモ)「コアライブラリ」とは
-
Python in ExcelではAnacondaに同梱されているライブラリの一部が利用できる
-
よく使うライブラリはimport文を書かずに使える
-
これを「コアライブラリ」と呼ぶ
(デモ)コアライブラリの一覧
(デモ)Python in Excelについて学ぶためのリソース
(デモ)Python in Excelでデータを扱うときのコツ
-
セルに埋め込まれている元データを直接加工しない
-
再利用がしにくくなるので
-
加工はPythonのコードで行う
(デモ)複数のセルにPythonコードを書く場合のテクニック
Pythonコードは一番左のシートから以下の順序で実行される。

Pythonコードの実行順
(デモ)複数のセルにPythonコードを書く場合のテクニック
最後の行に文字列リテラルでコメントを書くと、Excelブックを開いたときに処理内容がわかりやすい。
最後に
まとめ
-
Python in Excelは、セルにPythonコードを埋め込める機能
-
Pythonコードはクラウド上で動くのでローカルでのPythonインストールは不要
-
不正なコードを実行しないようにセキュリティ上の制限がある
-
Power Queryと組み合わせると外部リソースのデータを取り込める
-
Anacondaの一部ライブラリが使える
ご清聴ありがとうございました

AIが考えた「鹿児島焼酎を片手にPython in Excelを楽しむエンジニア」