初心者向け Python in Excel:xl() 関数でセルの値をPythonから扱う方法

designer

Python in Excelにおけるxl()関数は、Excelのセル、範囲、テーブルを指定し参照し、Pythonコードに使用することができます。本記事では、その内容を簡単な例で紹介します。

Python in Excelの初心者向けの紹介記事は以下を参照ください。

初心者向けPython:Excel作業を自動化したい人のためのPython in Excel – Lean Data Office

セルの値の参照

まず、セルの値を参照してみます。D2とD4に入ったセルをPythonで結合します。

image

D4とD2を結合するにあたっては、D2のセルの値’42’のデータ型に注意する必要があります。ここではstr()関数を使用しstring型に統一しています。

データ型については以下の解説を参照ください。

初心者向けPython in Excel : データ型について解説 – Lean Data Office

image
image

想定通りの出力が得られました。

セル範囲の参照

次にある指定のセル範囲にPythonコードを適用してみます。

PythonコードとセルF6の’1.5’を用いて、E6~E11の範囲にD列の数字を掛け合わせた数を出力してみます。

image

xl()関数を用いて、セル指定し、それぞれの数字を掛け合わせます。

image
image

期待通りの結果が得られました。

ここからこのセルをE11までコピーしてみましょう。

そうすると以下のようにエラーを返します。

image

よくみてみると、参照されるべきF6セルが参照されていないことに気が付くと思います。

image

※F6ではなくF7を参照している。

ここはExcelと同様に絶対参照($)を使用することで期待通り全セルに同様にF6を参照させることができます。

image

このうえでE11までE6のセルをコピーします。

image

期待通りの結果が得られました。

テーブルの参照

xl()関数では、テーブルを参照することも可能です。

テーブルを参照することで、Pythonは自動的にPandasのデータフレームを作成し、Pandasライブラリでサポートした機能を適用することができます。

xl()でテーブル範囲を指定します。

そうすると、

xl("テーブル1[#すべて]", headers=True)

と表示されます。headers=Trueはエクセルが自動的にヘッダーを含むテーブルであることを判別した結果です。もしヘッダーを含めて指定したにもかかわらずheaders=Trueが指定されていなかった場合は手動で入力してください。

image

実行すると結果はDataFrameとして現れます。

image

Pythonオブジェクトは[PY]をクリックすることでそのDataFrameの内容を表示します。

image

DataFrameに対してはPandasの機能を実行することが可能です。一例として、describeメソッドを実行してみます。

image

実行しても、Pythonオブジェクトのままでは実行結果はセルに反映されません。

ここでは、Excel値に変換してセルに表示してみましょう。

image
image

期待通りに出力できました。

ほかにもPandasの機能はPython in Excelでは標準的にサポートされています。ぜひ試してみてください。

まとめ

xl() 関数は、Excelのセルや範囲をPythonから直接扱うための橋渡しとなる機能です。
単一セルや名前付きセル、絶対参照($)や範囲指定まで、Excelと同じ感覚で利用できます。

特に範囲指定では、表データが PandasのDataFrame として読み込まれ、Pythonによる集計や分析結果をそのままExcel上に表示できます。
xl() を使うことで、Excelのデータを起点にPythonの処理を自然に組み込めるようになります。

筋トレとオートメーションが趣味。 モバイルアプリ個人開発者。 データ処理・可視化とレポートにハマり備忘録と情報共有のためにブログ開設し運営している。