Excel関数を使って、和暦年月日をシリアル値変換


久しぶりにExcel関数を使用しました。日付の和暦⇒西暦変換には『昭和xx』『平成xx』などからの変換はよく記事を見ましたが、今回は『H20』『S45』などの和暦頭文字で表記されている場合の日付の妥当性について関数を作成したので記載します。

和暦文字列⇒年月日へ変換する
I2,J2,K2のセルがそれぞれ以下のように和暦年、月、日で入力されており、これらの年月日の妥当性をチェックしたい場合。
H20|02|11

=IF(I2&J2&K2=””,0,DATEVALUE(IFERROR(CHOOSE(CODE(ASC(MID(I2,1,1)))-82,”昭和”,”大正”),”平成”) & MID(I2,2,2) &”年”&J2&”月”&K2&”日”))

  • IF() 初めに空文字チェック
  • DATEVALUE() 日付をシリアル値に変換する。できない場合は#VALUEが表示される。

頭文字1文字(T,S,H)で和暦判断だけする関数

=IFERROR(CHOOSE(CODE(ASC(MID(L2,1,1)))-82,”昭和”,”大正”),”平成”)

  • ASC(MID(L2,1,1)) 1文字取得し、ASCII文字に変換(全角アルファベットを半角に)
  • CODE(),IFERROR() ASCIIの値、S(83),T(84)からインデックスを求め、和暦判断させる。当てはまらない場合(つまり’H’の時)はIFERRORにて判断しERRORの”平成”を表示させる。