Excel解説記事

和暦の日付を西暦の日付に変換するには?

問題:
添付ファイルのように和暦で生年月日を管理しています。
これを西暦に変換したいのですが、元のデータは昭35/12/06という文字列です。
これを西暦に変換する方法をお教えてください。
図①

回答:
このデータには、「昭」もしくは、「平」の2種類のみが存在しています。またその後に年、月、日が2桁数値で「/」区切りで入力されています。
昭和の場合は和暦に1925を、平成の場合は1988を足せば西暦となります。
これを数式にすると、以下となります(B2セルの場合)
=DATE(IF(LEFT(A2,1)="昭",1925,1988)+MID(A2,2,2),MID(A2,5,2),RIGHT(A2,2))
図②

上の数式は、1つのセルに入れる数式の長さとしては許容範囲ですが、少し複雑ですね。また、特定の誕生月の人を集計するなどの作業が今後発生するのであれば、年、月、日をそれぞれ分けて管理するほうが使い勝手が良い場合もあります。
B2セル =IF(LEFT(A2,1)="昭",1925,1988)+MID(A2,2,2)
C2セル =MID(A2,5,2)
D2セル =RIGHT(A2,2)
E2セル =DATE(B2,C2,D2)
図③
 


今回のデータのように、昭和と平成だけでなく大正や令和のデータもある場合など、条件が複数あるときには、IF関数ではなく、マスタ表を別途作ってVLOOKUP関数で変換を行うことをおすすめします。
B2セル =VLOOKUP(LEFT(A2,1),H:I,2,0)+MID(A2,2,2)
図④


解説:
Excelで日付を扱う際には、西暦で、年を省略せずに入力することが基本です。回答にもありますが、入力もれなどを防ぐには、年、月、日を分けてデータベース項目を作っておくと便利です。
西暦で入力されたデータは、セルの書式設定で表示形式を変更することで和暦に簡単に変換(データの見た目を変える)ことができます。
図⑤