- Home »
- エクセル関数の技 »
- 関数を使って元号・元年を表示する(和暦に変換する)
更新:2024/11/04;作成:2018/2/28
関数を使って西暦を和暦に変換する topへ
- このページでは関数を使って、西暦を和暦に変換する方法と1年を元年と変換する方法について説明します。
和暦に変換できる関数としては DATESTRING関数とTEXT関数があげられます。
- 2019/5/4にExcelの表示形式で令和が表示できるようになりましたので、こちらの方法を使って「令和元年」表示が可能になりました。
表示形式やTEXT関数で1年を元年と表示する をご覧ください。 - 条件付き書式で1年を元年と表示する方法は 元号の1年目を元年と表示する(条件付き書式) をご覧ください。
TEXT関数を使って元号(年)を表示する
- TEXT関数で表示形式を利用した和暦の表示・元号の表示が可能です。
元号を表示する表示形式は gggee、ggge、gge、ge などがあります。また元号を使うときの年は、ee、e が使われます。
下図は表示形式によってどのように表示されるかを示しています。
C3セルの数式は =TEXT($B3,C$2) として、横方向、下方向へコピーしています。
表示形式を数式内に書くと C3セルは =TEXT($B3,"gggee") となります。この数式は同列だけしかコピーして使えません。
D3セルは=TEXT($B3,"ggge") 、E3セルは =TEXT($B3,"gge") といった具合になります。
TEXT関数を使って和暦の年月日を表示する
- TEXT関数を使った例です。
C3セルの数式は =TEXT($B3,C$2) としています。
表示形式を数式内に書く場合は =TEXT(B3,"gggee年m月d日") とします。
元年を表示するには =TEXT(B3,"[$-ja-JP-x-gannen]ggge"年"m"月"d"日"") とします。(追記:2024/11/4)
NUMBERSTRING関数を使って、漢数字で和暦の年月日を表示する
- 漢数字に変換したいときはNUMBERSTRING関数を使うことができます。
C列とD列はNUMBERSTRING関数の引数が異なっています。
C12セルには =NUMBERSTRING(TEXT(B12,"ee"),1) 、D12セルには =NUMBERSTRING(TEXT(B12,"e"),3) と入力されています。
- 月日まで表示したいときは、上のTEXT関数を使った数式と組み合わせます。
C12セルの数式は年と月と日をそれぞれ漢数字に変換しています。
=TEXT(B12,"ggg")&NUMBERSTRING(TEXT(B12,"ee"),1)&"年"&NUMBERSTRING(TEXT(B12,"m"),1)&"月"&NUMBERSTRING(TEXT(B12,"d"),1)&"日" としています。
表示形式を使った数式で、漢数字の和暦の年月日を表示する
- また、表示形式では[DBNum1]を利用すると、下図のような表示が可能になります。
- TEXT関数と組み合わせると、K3セルは =TEXT(J3,"[DBNum1]gggee") 、L3セルは =TEXT(J3,"[DBNum1]ggee") と入力しています。
- 月日まで表示したいときは、=TEXT(J3,"[DBNum1]gggee年m月d日") =TEXT(J3,"[DBNum1]ggge年m月d日") とすることができます。
表示形式で漢数字に変換する方がNUMBERSTRING関数を使う方法よりスマートな数式になります。
- DATESTRING関数は他の表計算ソフトとの互換性を保つために用意された関数のため、ヘルプおよび関数ウィザードには表示されません。
知る人ぞ知る関数となっています。
DATESTRING関数を使って和暦(元号)を表示する
- Excelが自動で元号が変わった日付から、変わった元号で表示してくれます。
- DATESTRING関数は日付データ(シリアル値)を和暦の文字列に変換します。
年と月と日は2桁表示になります。
1989年1月7日までは昭和ですが、1989年1月8日から平成が表示されます。
2019年5月1日からは令和で表示されます。
DATESTRING関数を使って1年を元年と表示する
- DATESTRING関数を使うと、改元のタイミングで、大正01年、昭和01年、平成01年といった風に変換されます。
これを元年表示にしたいときは =SUBSTITUTE(DATESTRING(A1),"01年","元年") とすることができます。
ここでは、SUBSTITUTE関数を使って、「01年」を「元年」に置き換えています。
- 02,03・・・といった頭ゼロが目障り・・・といった場合には、ちょっと数式が長くなっていますが、取り除くことも可能です。
数式は(2019/5/9 数式が間違っていましたので修正しました)
=IF(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(DATESTRING(B3),"01年","元年"),"年0","年"),"月0","月"),3,1)="0",
REPLACE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(DATESTRING(B3),"01年","元年"),"年0","年"),"月0","月"),3,1,""),
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(DATESTRING(B3),"01年","元年"),"年0","年"),"月0","月"))
としました。
年号の次のゼロは3文字目がゼロの時にReplace関数で取り除きます。年0、月0で月と日のゼロは取り除くことができます。
元年と表示したものをシリアル値に変換する
- 元年表示に置き換えた元号表示の和暦をシリアル値に変換したいときは DATEVALUE関数ではエラーとなります。
- エラーを防止するには =DATEVALUE(SUBSTITUTE(D1,"元年","01年")) とSUBSTITUTE関数で「元年」を「01年」に置き換えてから DATEVALUE関数を使います。
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数の技 »
関数を使って元号を表示する(和暦に変換する)
PageViewCounter
Since2006/2/27