ご自由にサンプルをダウンロードなさってください。
DATEVALUEで日付文字列 → シリアル値とするには、日付の表示形式を保っている文字列を引数にする必要があります。
ですから「昭和16年」「2011年」といった形式で、手入力してあるものは、DATEVALUE関数でシリアル値に変換できません。
そこで、文字列をシリアル値に変換するために、
「昭和16年」 → "昭和16年"&"1月1日"
とすることで、「昭和16年1月1日」という日付の表示になり、DATEVALUE関数で、シリアル値に変換することができます。
セルD1 『西暦4ケタ』
=DATEVALUE(A1&"1月1日")
として、シリアル値で表示される数値を、
ユーザー定義でyyyy
を指定することで、西暦4ケタで表示します。 (下図)
セルC1『干支』
=MID("申酉戌亥子丑寅卯辰巳午未",MOD(YEAR(D1),12)+1,1)
MOD(A5,12)+1,1):12年サイクルですので、12で割った余りに1を加え1~12が得られるようにします。
MID("申酉戌亥子丑寅卯辰巳午未",MOD(A5,12)+1,1):1900年は「子」になるので、十干と同様に計算の都合がいいように並べ替えます。
セルB1 『満年齢』
=DATEDIF(D1,TODAY(),"Y")
B1のセルは、ユーザー定義で、
#"歳"
とします。誕生日が既にきている場合(1月1日)の満年齢として表示されます。