趣味で計算流砂水理 Computational Sediment Hydraulics for Fun Learning

数値計算とか河川工学とかプログラミングのことを書いています

MENU

備忘録:Python in Excelの基本動作+セルのレンジをndarrayに変換する方法(2025/7時点)

スポンサーリンク

 

 

 

はじめに

使っている人がほとんどいないことで有名なPython in Excelについて(だって、Pythonが使える人はExcelなんて使わないでしょ)、諸事情で初めて使ったときにつまづいた表題について備忘録としてまとめておきます。

参考サイトも少ないので、誰かの役に立てば思います。

まだまだ仕様の変更があると思われるので現時点での情報になります。

本ページに示した関数を記述したExcelファイルはここからダウンロードできます。



Python in Excelの動作環境

Python in Excelが動作する環境は、

  • Office 365と契約している
  • インターネットに接続している(Python in Excelクラウド上で動作するため)

になります。

Python in Excelの基本動作

エディタの起動

操作しやすいようにPythonエディタを起動します。 「数式」タブの「エディタ」をクリックすると右側のサイドバーにPythonエディタが表示されます。

Pythonコードの入力方法

対象セルを選択した状態で、「数式」タブの「Python」をクリック、または、セルに「=py(」と入力すると、次図のようにセルに緑枠で「PY」と表示され、Pythonコードが入力可能な状態になります。 別の方法として、右サイドバーのPyhonエディタで「***にPythonセルを追加する」ボタンをクリックしする方法あります。

Pythonコードの作成、実行

Python in Excel のコアライブラリとして以下のモジュールが初期からインストールされています。

参照サイト:オープンソース ライブラリと Python in Excel - Microsoft サポート

そのため、Pythonが入力可能な状態で下記コードを入力し、「control+enter」をクリックすると計算が実行され、セルに答えが表示されます。

np.array([1,2,3]).sum()
# 6

関数の定義

関数はセルに定義すること可能です。 例えば、任意のセルに以下のコードを入力します。セルはNoneと表示されます。

def test(x):
    return x + 1

次に別のセルをPythonを入力可能な状態にして、以下を入力すると関数を呼び出すことができます。

test(1)
# 2

同一Book内であれば、どのセルからも呼び出すことが可能です。

以上、基本動作の説明は終わります。機能は多岐にわたるようなので、随時共有して行く予定です。

セルのレンジをndarrayに変換する方法

基本ケース

下図のように、A1:B3のセルに適当な値を入力して、Pythonセル(C1)から参照します。

実行結果をPythonエディタで確認するとDataFrameと表示されています。つまり、ExcelのレンジはPython in ExcelではpandasのDataFrameとして扱われることがわかります。

ということは、以下のような処理でndarrayに変換し、各種処理が可能です。

df = xl("A1:B3")
x = df.values
x.sum()
# 21
df = xl("A1:B3")
x = df.iloc[:,0].values
x.sum()
# 6

注意:空白セルを含む場合

次の空白セルを含むケースを考えます。Pythonセルの参照範囲A1:B5まで広げると、取得したDataFrameは次図のように空白セルが0と表示されます。

xl("A1:B5")

通常、pandasのDataFrameでは空白はNaNと表示されますが、Python in Excelでは0として扱われるの?と思いきや、0と表示されるだけで実際はNaNのようです。

df = xl("A1:B5")
df==0

df = xl("A1:B5")
df.isna()

そのため、dropnaメソッド等を使用して空白セルを削除することが可能です。その後は前項と同様の処理でndarrayに変換できます。

df = xl("A1:B5")
df.dropna()

関連記事

computational-sediment-hyd.hatenablog.jp