Python in Excel (03) データ参照 シート上の値

セルの値の参照

 Pythonコード内でセルの値を参照することができます。

 セルの値を直接参照する場合は、以下のようにマウスでセルB2を選択すると、Pythonコードに xl("B2") と表示されます。xlの中にエクセルのセルのアドレスを入れることになります。

セルの値を直接参照

 エクセルのセル参照と同様に、セルをコピーするとセルのアドレスが相対的に変化します。

コピーで自動的にアドレスが変化する

範囲参照

 範囲の指定も、マウスで選択することができます。len関数で件数を求めてみます。

 ただし、範囲選択で作成されるのは DataFrame です。そのままsumで合計を出すことができません。

 そこで、データフレームをリストに変換して計算することになります。

 範囲選択の時、ヘッダーも含めて選択すると、以下のような書き方ができます。

計算
件数 len(xl("A1:B6", headers=True))
合計 sum(xl("A1:B6", headers=True).Age)

 この方が、はるかにわかりやすいでしょう。

テーブル選択

 データをテーブルに変換してから選択すると、ヘッダーを取得することができません。

 ここで、1つおまじないを付け加えてやる必要があります。

テーブルの左上でダブルクリック

 テーブルを選択するとき、テーブルの左上で斜め下矢印が出た状態でダブルクリックします。すると、Pythonコードには xl("テーブル2[#すべて]", headers=True) と表示されます。これでヘッダー情報も含めたデータフレームを作成することができます。

ヘッダー情報が正しくなった

 この状態で、以下のように計算式を書きます。

計算
件数 len(xl("テーブル2[#すべて]", headers=True))
合計 ssum(xl("テーブル2[#すべて]", headers=True).Age)

データフレーム

 範囲選択を行うと、DataFrame型になると説明しました。この型は、Pandasの型です。したがって、このDataFrameに対して、すぐにPandasの操作を行うことができます。

計算
合計 xl("テーブル2[#すべて]", headers=True).Age.sum()
平均 xl("テーブル2[#すべて]", headers=True).Age.mean()
最大 xl("テーブル2[#すべて]", headers=True).Age.max()
最小 xl("テーブル2[#すべて]", headers=True).Age.min()
件数 xl("テーブル2[#すべて]", headers=True).Name.count()