「openpyxl」で、Excel関数を使ったPythonプログラムを作ってみる

※社外のコラムニストによる寄稿です。Pythonに関する情報をお届けします。

「シゴトがはかどるPython自動処理の教科書(著:クジラ飛行机様/マイナビ出版)」を利用して、Pythonを使った自動化について学んでいきます。

前回からChapter2-4「Excelシート自動生成のアイデア」に入り、データの自動生成の基本的な部分を学びました。
今回は、Excelの機能のひとつ、数式と組み合わせて使う方法について学びます。

Excelに関数を埋め込む方法

前回はPythonを使っての作業でしたが、今回はExcelの関数「TEXT」を利用して和暦変換を行います。


P.59

実際に西暦和暦対応表を作る前に、数式をExcelファイルに埋め込む簡単なプログラムを作って動作を確認してみましょう。 数式を埋め込む場合には、値を直接指定するのではなく、”=計算式”のように、”=”から始まる値を指定します。以下のプログラムは、セル「A1」に書き込んだ西暦を、和暦に変換してセル「B2」に表示するものです。和暦の変換には、ExcelのTEXT関数を利用します。


これを実行して出力されたのがこちらのExcelファイルです。

2にはTEXT関数で使う形式を用いて書かれていますが、B2の関数を確認してみると確かにそのまま書かれていることが分かります。
ちなみに「ggge」は西暦から和暦に変換する時に利用するコードです。
TEXT関数は曜日などにも変換ができます。日付に関するものは以下が挙げられます。
(表示例元の日付:2025年2月1日)

単位表示形式
mm2
dd1
曜日1aaa
曜日2aaaa土曜日
曜日3(aaa)(土)
西暦→和暦1ggge令和7年
西暦→和暦2geR7

より詳細な変換コードを知りたい方は、セルの書式設定の表示形式タブからご覧頂くか、以下のURLをご参照ください。

TEXT 関数|Microsoftサポート

Excel関数×Pythonで西暦和暦対応表を作ってみよう。

Pythonプログラム内に該当のセルへ値を設定する際、「”=”」と書けばExcelで計算式として計算されることが分かりました。
次に、この方法を利用して西暦対応表生成プログラムを作ってみるようです。


P.60
以下が、書き換えたプログラムです。Pythonで記述した西暦和暦の変換処理がなくなり、代わりにTEXT関数を使った式をセルに設定します。


そして出力されたのがこちらのファイルです。

まず西暦の部分は、繰り返し処理で、1930年から始まり、1を足していくことで作られて、A2以降のセルに文字列として入力されています。そして、和暦の部分は、formatメソッドを使い、{}に西暦の値(sei)を入力されるようになっていました。
そのため、B列に入っている数式は上で出てきたサンプルのA1を参照する形ではなく、日付をそのまま計算式内に記述しています。なので、ExcelファイルのA列の値を直接変更しても、B列の値は、上で出ているサンプルとは違って、自動で変換されることはありません。

それではきりが良いのでこちらで終了です。今回もお付き合いいただき、ありがとうございました。

Pythonの自動化で業務の効率化を図りたい方は、グローバルウェイに依頼してみてはいかがでしょうか?興味がある方は以下をご覧の上、是非お問い合わせください。

Pythonによる業務の自動化ソリューション

このページではPythonを活用した業務の自動化ソリューションをご紹介します。 目次お客様の課題日本企業の雑務の平均時間は業務の自動化を採用するメリット当社のPythonに…