2019年5月1日に新しい元号に変わります。
年号が変わった年の西暦から和暦への変換では、古い元号での和暦年と新しい元号での和暦年の両方を表示したい、みたいな要望も出てくるのかなぁ(トホホ)、と思っています。
西暦年から和暦年の変換を行う数式のサンプル
以下のような数式を使うと、西暦年から和暦年への変換で、古い元号での和暦年と新しい元号での和暦年の両方を表示できます。※A1セルに西暦年を表す数値を入力するとB1セルに和暦年を表示する例
B1セルに
=IF(TEXT(DATE(A1, 12, 31), "e")="1",
TEXT(DATE(A1, 1, 1), "ggge年") & CHAR(10) & TEXT(DATE(A1, 12, 31), "ggg元年"),
TEXT(DATE(A1, 12, 31), "ggge年"))
という計算式を入力する
結構長い計算式ですから上図では、セル内改行と、スペースを使ってインデントを行っています。
A1セルに「1989」を入力した場合は下図のとおり「昭和64年 平成元年」
A1セルに「1926」を入力した場合は下図のとおり「大正15年 昭和元年」
と表示されます。
A1セルに「2019」と入力した場合も、2019年4月1日の新元号発表後、Windows等が正しくアップデートされれば「平成31年 〇〇元年」と表示される、はずです。
西暦年から旧元号と新元号での和暦年を表示する考え方
元号が切り替わる年の場合、1月1日は古い元号で、12月31日は新しい元号になっています。
ですから基本的には、12月31日の和暦年表示を、TEXT関数を使って行っています。
=IF(TEXT(DATE(A1, 12, 31), "e")="1",
TEXT(DATE(A1, 1, 1), "ggge年") & CHAR(10) & TEXT(DATE(A1, 12, 31), "ggg元年"),
TEXT(DATE(A1, 12, 31), "ggge年"))
元号が切り替わる年かどうかの判定は、12月31日時点の和暦年が文字列の「1」であるかどうかで行っています。
=IF(TEXT(DATE(A1, 12, 31), "e")="1",
TEXT(DATE(A1, 1, 1), "ggge年") & CHAR(10) & TEXT(DATE(A1, 12, 31), "ggg元年"),
TEXT(DATE(A1, 12, 31), "ggge年"))
元号が切り替わる年の場合、1月1日の古い元号での和暦年と、
=IF(TEXT(DATE(A1, 12, 31), "e")="1",
TEXT(DATE(A1, 1, 1), "ggge年") & CHAR(10) & TEXT(DATE(A1, 12, 31), "ggg元年"),
TEXT(DATE(A1, 12, 31), "ggge年"))
12月31日の新しい元号での和暦年「〇〇元年」を表示しています。
=IF(TEXT(DATE(A1, 12, 31), "e")="1",
TEXT(DATE(A1, 1, 1), "ggge年") & CHAR(10) & TEXT(DATE(A1, 12, 31), "ggg元年"),
TEXT(DATE(A1, 12, 31), "ggge年"))
最終更新日時:2019-03-16 08:01
Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 西暦年から旧元号と新元号での和暦年を