Googleスプレッドシートで西暦を和暦に変換|数式と名前付き関数で効率化

Excelでは、セルの表示形式を「和暦」に設定するだけで、「令和6年2月13日」などの和暦表示が簡単にできます。
ですが、Googleスプレッドシートでは「和暦」の表示形式が存在せず、デフォルトでは西暦表示しかできません。
そこで、本記事ではGoogleスプレッドシートで数式を使って和暦変換する方法をご紹介します。

西暦→和暦に変換する数式

- A列の西暦日付を和暦に変換
- 元号の初めの年は「元年」を表示
- 令和・平成・昭和・大正までを和暦表示
長い数式ですが、次の数式を使えばGoogleスプレッドシートでも 令和・平成・昭和・大正の和暦表示が可能 です
(明治以前は同様の数式では計算できず、複雑になるため除外)
和暦に変換する数式 (A1セルの西暦を変換する場合)
=IF(A1>=DATE(2019,5,1), "令和" & IF(YEAR(A1)=2019, "元", YEAR(A1)-2018) & "年" & TEXT(A1,"m月d日"),
IF(A1>=DATE(1989,1,8), "平成" & IF(YEAR(A1)=1989, "元", YEAR(A1)-1988) & "年" & TEXT(A1,"m月d日"),
IF(A1>=DATE(1926,12,25), "昭和" & IF(YEAR(A1)=1926, "元", YEAR(A1)-1925) & "年" & TEXT(A1,"m月d日"),
IF(A1>=DATE(1912,7,30), "大正" & IF(YEAR(A1)=1912, "元", YEAR(A1)-1911) & "年" & TEXT(A1,"m月d日"),
"計算外"))))
元号の整理
元号 | 期間 |
---|---|
令和 | 2019年5月1日 ~ 現在 |
平成 | 1989年1月8日 ~ 2019年4月30日 |
昭和 | 1926年12月25日 ~ 1989年1月7日 |
大正 | 1912年7月30日 ~ 1926年12月24日 |
(計算外)明治以前 | 1912年7月29日以前 |
数式の説明
- 令和(2019年5月1日以降)
-
IF(A1>=DATE(2019,5,1), "令和" & IF(YEAR(A1)=2019, "元", YEAR(A1)-2018) & "年" & TEXT(A1,"m月d日"),
A1
が 2019年5月1日以降 なら「令和」とします。YEAR(A1)=2019
の場合、「元」 を表示。それ以外はYEAR(A1)-2018
で 「令和〇年」 を計算します。TEXT(A1, "m月d日")
で 「〇月〇日」 を追加します。
- 平成(1989年1月8日~2019年4月30日)
-
IF(A1>=DATE(1989,1,8), "平成" & IF(YEAR(A1)=1989, "元", YEAR(A1)-1988) & "年" & TEXT(A1,"m月d日"),
A1
が 1989年1月8日~2019年4月30日 の間なら「平成」。YEAR(A1)=1989
なら 「平成元年」。- それ以外は
YEAR(A1)-1988
で 「平成〇年」 を計算します。
- 昭和(1926年12月25日~1989年1月7日)
-
IF(A1>=DATE(1926,12,25), "昭和" & IF(YEAR(A1)=1926, "元", YEAR(A1)-1925) & "年" & TEXT(A1,"m月d日"),
A1
が 1926年12月25日~1989年1月7日 の間なら「昭和」。YEAR(A1)=1926
なら 「昭和元年」。- それ以外は
YEAR(A1)-1925
で 「昭和〇年」 を計算します。
- 大正(1912年7月30日~1926年12月24日)
-
IF(A1>=DATE(1912,7,30), "大正" & IF(YEAR(A1)=1912, "元", YEAR(A1)-1911) & "年" & TEXT(A1,"m月d日"),
A1
が 1912年7月30日~1926年12月24日 の間なら「大正」。YEAR(A1)=1912
なら 「大正元年」。それ以外は
YEAR(A1)-1911
で 「大正〇年」 を計算します。 - 1912年以前(計算外)
-
"計算外"
- 1912年7月29日以前(明治以前) は 「計算外」 として処理します。
「名前付き関数」を設定して簡単に使う方法

名前付き関数を使うことで数式を省略可
先ほどの数式は長いため、A1セル以外のセルでも適用しようとすると、毎回コピー&ペーストする必要があり、手間がかかります。
そこで、「名前付き関数」 を使えば、「=和暦(A1)」のようにシンプルな数式で和暦変換ができるようになります。
複数のセルでも簡単に適用できるため、作業効率が向上します。
名前付き関数の設定方法

上部メニューから「データ」ー「名前付き関数」を選択します。
(右クリックメニューからでも可)

画面右側に表示される名前付き関数から「新しい関数を追加」をクリックします。

関数名と説明に自分が分かりやすい内容を入力します。
関数名: 和暦
(好きな名前でOK)
説 明:指定した日付を和暦に変換します

引数名(関数に渡すデータ)を入力します。
引数名:日付
(好きな名前でOK)

「数式の定義」に以下の数式を貼り付けます。
=IF( 日付 >= DATE(2019,5,1), "令和" & IF(YEAR(日付)=2019, "元", YEAR(日付)-2018) & "年" & TEXT(日付,"m月d日"),
IF( 日付 >= DATE(1989,1,8), "平成" & IF(YEAR(日付)=1989, "元", YEAR(日付)-1988) & "年" & TEXT(日付,"m月d日"),
IF( 日付 >= DATE(1926,12,25), "昭和" & IF(YEAR(日付)=1926, "元", YEAR(日付)-1925) & "年" & TEXT(日付,"m月d日"),
IF( 日付 >= DATE(1912,7,30), "大正" & IF(YEAR(日付)=1912, "元", YEAR(日付)-1911) & "年" & TEXT(日付,"m月d日"),
"計算外"))))

「作成」をクリックします。

関数が表示されれば作成完了です。
名前付き関数の使い方

該当のセルに以下の数式を入力します。
(C2 セルを参照する場合)
=和暦(C2)
また、アレイフォーミュラ関数(ARRAYFORMULA
)を使うと、複数のセルを一括で変換 できます。

(C2からC10セルを一括変換する場合)
=ARRAYFORMULA(和暦(C2:C10))
データが多い場合、手動で数式をコピーしなくても済むので便利です!
まとめ
Googleスプレッドシートでは、Excelのように和暦を直接表示することはできませんが、数式を使うことで和暦への変換が可能です。
ですが、IF関数を使うと数式が長くなってしまうため、「名前付き関数」を設定することで、より簡単に利用できます。
和暦に変換したいデータが少ない場合は、インターネットで調べる方が手軽ですが、大量のデータを扱う場合は、数式を活用すると作業効率が向上します。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。
GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。
また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
貴方の業務改善を全力でサポートいたします。
コメント