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

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License .

は​じめに

自己紹介

昨夜​行ってきた​店

立ち飲み屋Kiritsu(キリツ)

天文館の​「 立ち飲み屋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上で実行される

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文を​書かずに​使える

  • これを​「コアライブラリ」と​呼ぶ

(デモ)​コアライブラリの​一覧

Excel の​オープンソース ライブラリと​ Python - Microsoft サポート を​参照。

(デモ)​Python in Excelに​ついて​学ぶ​ための​リソース

(デモ)​Python in Excelで​データを​扱う​ときの​コツ

  • セルに​埋め込まれている​元データを​直接加工しない

  • 再利用がしにくくなるので

  • 加工は​Pythonの​コードで​行う

(デモ)​複数の​セルに​Pythonコードを​書く​場合の​テクニック

Pythonコードは​一番左の​シートから​以下の​順序で​実行される。

Pythonコードの実行順

Pythonコードの​実行順

(デモ)​複数の​セルに​Pythonコードを​書く​場合の​テクニック

最後の​行に​文字列リテラルで​コメントを​書くと、​Excelブックを​開いた​ときに​処理内容が​わかりやすい。

最後に

まとめ

  • Python in Excelは、​セルに​Pythonコードを​埋め込める​機能

  • Pythonコードは​クラウド上で​動くので​ローカルでの​Pythonインストールは​不要

  • 不正な​コードを​実行しないように​セキュリティ上の​制限が​ある

  • Power Queryと​組み合わせると​外部リソースの​データを​取り込める

  • Anacondaの​一部​ライブラリが​使える

ご清聴​ありがとう​ございました

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

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