Googleスプレッドシートで西暦を和暦(令和・平成・昭和・大正・明治)に変換する名前付き関数の作成方法

Google スプレッドシートでは、西暦から和暦に変換することができません。
そのため、「和暦変換ができればいいのに」と思ったことがあるのではないでしょうか?

今回は、変換したい西暦の日付を入力するか参照することで、簡単に和暦に変換することができる関数を「名前付き関数」として作成する方法を解説していきます。

名前付き関数の基本的な登録手順や操作方法については前の記事でまとめています。
実際に作成する際はぜひこちらの記事を参考にしてみてください。

▶︎ Googleスプレッドシートでオリジナル関数を登録!「名前付き関数」の登録方法とインポート手順

西暦を和暦に変換する関数の仕様

今回作成する関数の主な仕様・挙動は以下の通りです。

  • 対応する元号:「明治」「大正」「昭和」「平成」「令和」の5元号に対応をします。
  • 対応範囲DATE 関数が1900年からの対応のため、1900年1月1日(明治33年)以降の日付データに対応をします。(1899年以前の日付を入力した場合は「1900年以降のみ対応」と表示をします。)
  • 改元初年の表記:「令和1年」ではなく「令和元年」と自動変換をします。
  • 空欄の処理:参照セルが未入力(空欄)の場合は、エラーを出さず空欄を返却します。
注意

Googleスプレッドシートやエクセルの DATE 関数や日付データ(シリアル値)は1900年1月1日以降が対象となります。

そのため、1899年以前(明治の初期〜中期など)の日付を入力すると日付を正確に判定することができません。
日付以外の比較方法での実装も可能ですが、そこまでの需要がないと思われますので、今回作成する西暦を和暦に変換する関数は 1900 年 1 月 1 日以降(明治33年1月1日〜)の日付データでご活用する前提として作成を行います。


西暦を和暦に変換する関数の作成内容

以下の各項目へ、それぞれコピペして入力することで西暦を和暦に変換する関数を作成することができます。

あくまで、参考として掲載をしています。ご自身で変更したい場合は変更していただいても構いません。

関数名

TO_WAREKI

または、

和暦

※ 英名と日本語、どちらか関数名として使いやすい方を入力して使用してください。

関数の説明

指定した日付(西暦)を和暦(明治・大正・昭和・平成・令和)の文字列に変換します。
※1900年1月1日以降の日付に対応しています。
※改元初年は「元年」表記になります(例: 令和元年)。
※未入力の場合は空欄を返します。

引数のプレースホルダ

日付

数式の定義

=LET(
  y, YEAR(日付),
  md, TEXT(日付, "m月d日"),
  IFS(
    ISBLANK(日付), "",
    日付 >= DATE(2019, 5, 1), "令和" & IF(y - 2018 = 1, "元", y - 2018) & "年" & md,
    日付 >= DATE(1989, 1, 8), "平成" & IF(y - 1988 = 1, "元", y - 1988) & "年" & md,
    日付 >= DATE(1926, 12, 25), "昭和" & IF(y - 1925 = 1, "元", y - 1925) & "年" & md,
    日付 >= DATE(1912, 7, 30), "大正" & IF(y - 1911 = 1, "元", y - 1911) & "年" & md,
    日付 >= DATE(1900, 1, 1), "明治" & (y - 1867) & "年" & md,
    TRUE, "1900年以降のみ対応"
  )
)

実際に入力をした状態の画面キャプチャは以下となります。
「数式の定義」まで入力ができたら右下の「次へ」ボタンをクリックします。

関数名、関数の説明、引数のプレースフォルダ、数式の定義を入力した画面のキャプチャ

引数の説明:日付

和暦に変換したい西暦の日付データ(セル参照または DATE 関数などの日付データ)

引数の例:日付

2026年1月1日 または A2

引数の説明と引数の例まで入力した状態の画面キャプチャが以下です。
入力ができたら右下の「作成」ボタンをクリックして完成です。

引数の説明と引数の例を入力したキャプチャ画面

作成した西暦を和暦に変換する関数の使い方と実行例

作成した関数は、通常の関数と同じようにセルで呼び出して使用できます。

=TO_WAREKI(A2)

または、

=和暦(A2)

関数名で入力した方で関数を呼び出してください。

実際に使用する場合の入力データ(日付)と結果は以下のようになります。

内容入力データ(日付)出力結果ポイント
令和(通常)2026/01/01令和8年1月1日現在(令和)の年号
令和(元年)2019/05/01令和元年5月1日令和初日
平成(通常)2000/10/15平成12年10月15日平成の表示
平成(元年)1989/01/08平成元年1月8日平成初日
昭和(通常)1980/04/01昭和55年4月1日昭和の表示
昭和(元年)1926/12/25昭和元年12月25日昭和初日
大正(通常)1920/05/05大正9年5月5日大正の表示
大正(元年)1912/07/30大正元年7月30日大正初日
明治(対応範囲)1905/01/01明治38年1月1日1900年以降の明治表記
1900年より前1899/12/311900年以降のみ対応対応外日付の警告メッセージ
空欄(未入力)(空欄)(空欄)エラーにならず空欄を返却

実際にスプレッドシートで関数を呼び出してみたキャプチャが以下となります。

作成した西暦から和暦へ変換する関数を実際に使用した出力結果のキャプチャ画像

まとめ:Googleスプレッドシートで和暦変換するなら名前付き関数で

Google スプレッドシートで西暦を和暦に変換できずに困っていた方も、この「名前付き関数」を1つ作成しておけば、今後は簡単に変換できるようになります。

一度作成した関数は他のスプレッドシートへインポートして使い回すことも可能です。

1点注意点として、西暦は日付型の入力が必要で、和暦は文字列として出力されます。
そのため出力表示された和暦は、日付型として使用できません。

名前付き関数の登録手順や別シートへのエクスポート・インポート方法については、「Googleスプレッドシートでオリジナル関数を登録!「名前付き関数」の登録方法とインポート手順」で詳しく解説していますので、ぜひあわせて参考にしてみてください!