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/31 | 1900年以降のみ対応 | 対応外日付の警告メッセージ |
| 空欄(未入力) | (空欄) | (空欄) | エラーにならず空欄を返却 |
実際にスプレッドシートで関数を呼び出してみたキャプチャが以下となります。

まとめ:Googleスプレッドシートで和暦変換するなら名前付き関数で
Google スプレッドシートで西暦を和暦に変換できずに困っていた方も、この「名前付き関数」を1つ作成しておけば、今後は簡単に変換できるようになります。
一度作成した関数は他のスプレッドシートへインポートして使い回すことも可能です。
1点注意点として、西暦は日付型の入力が必要で、和暦は文字列として出力されます。
そのため出力表示された和暦は、日付型として使用できません。
名前付き関数の登録手順や別シートへのエクスポート・インポート方法については、「Googleスプレッドシートでオリジナル関数を登録!「名前付き関数」の登録方法とインポート手順」で詳しく解説していますので、ぜひあわせて参考にしてみてください!
