ほんのひと手間!Excelの和暦表示において"元年"を出力する方法

こんにちは、Software Engineerの5umerag1です。

初投稿となる今回は、改元に伴う和暦表示におけるひと手間をご紹介します。日本独自の文化である和暦を大事にするためにも、ぜひ実践してみてください。

1. 書式設定

Excelは、本来の表計算としての役割を果たすだけではなく、報告書や設計書等を作成する際にも多く用いられています。
当然のように書式設定を使用している方が多いと思いますが、今一度確認してみましょう。

Excelのセルに日付を入力(Ctrl+;等)した場合、自動的に表示形式としては「日付」が選択されます。
しかしながら、さすがは米国発のMicrosoft Office。標準の設定では、日本の和暦は出てきません。そこで大抵の方は、ユーザ定義から以下設定を選択するかと思います。

補足ですが、曜日まで出力させたいという場合は、少々ユーザ定義を拡張して、以下のようなコードを記述します。

[$-ja-JP]ggge"年"m"月"d"日("aaa")"

少し話が逸れましたが、上記のようなユーザ定義では令和"元"年は、
令和"1"年として出力されてしまいます。
決して、令和1年という表記に誤りはないのですが、改元後の初年は、
なぜだか"元年"と表記したいのが日本人です。
そこで、このユーザ定義にほんのひと手間を加えましょう。

2. ほんのひと手間

ユーザ定義に、以下のコードを記述してください。

[<=43585]ggge"年"m"月"d"日";[>=43831]ggge"年"m"月"d"日";ggg"元年"m"月"d"日"

すると、表記は以下のように変化します。

3. 解説

ほんのひと手間のコードによって、なぜ表記が変化したか、順を追って解説いたします。

まず、ユーザー定義には、セミコロン区切りで4つまで任意の値を設定することができます。

正の数値 ; 負の数値 ; 0の場合 ; 文字列の場合

これは、Excelの標準設定でも確認ができます。

これとは別に、条件を設定したユーザ定義も設定することができます。条件式は、以下の4パターンをサポートしています。

1. [条件1]満たしたときのみ
2. [条件1]満たしたとき ; 満たさないとき
3. [条件1]満たしたとき ; [条件2]満たしたとき ; 満たさないとき
4. [条件1]満たしたとき ; [条件2]満たしたとき ; 満たさないとき ; 文字列の場合

ほんのひと手間でご紹介したコードは、上記の3番目を用いていることがわかるかと思います。
それでは、コードの解説をしていきたいと思います。

[<=43585]ggge"年"m"月"d"日"

まずは条件1ですが、これは入力された値が43585より小さい場合は、
ggge年m月d日で表記するといった意味になります。

ここで補足ですが、Excelにおいては1900年1月1日(明治33年1月1日)を1として、加算した日数で日付を管理しています。そのため、
 43585 = 1900年1月1日 + 43584日 = 2019年4月30日(平成30年4月30日)
といった計算が成り立つことになります。

次に条件2ですが、これは入力された値が43831より大きい場合は、
ggge年m月d日で表記するといった意味になります。
もうお判りかと思いますが、この43831は2020年1月1日を表します。

つまり、ほんのひと手間でご紹介したコードは、
 1. 2019年4月30日より小さければ、ggge年m月d日
 2. 2020年1月1日より大きければ、ggge年m月d日
 3. その間の場合は、ggg元年m月d日
で出力する書式設定となります。

4. さらにその先へ

3. 解説を読んでいただいて、感づいた方も多いかもしれませんが、このコードでは、平成元年を表示することができません。
実際に、1989年1月8日をExcelで入力すると、平成1年1月8日となることが確認できます。

それでは、さらに条件式を追加(平成と昭和の境目を数値で表す)すれば良いと思うかもしれませんが、それは「セミコロン区切りで4つまで」という制約上できません。

そのため、明治も大正も昭和も平成も令和も、全ての元号における元年表示を実施するため、もうひと手間が必要となります。

それは、また今度。

拙い文章でしたが、最後まで読んでいただき、ありがとうございました。
コメントやスキ頂きましたら幸いです

この記事が気に入ったらサポートをしてみませんか?