「昭和16年」と手入力された文字列をシリアル値に変換するには

例えばA1セルに昭和16年と入力したらB1に70歳、C1にヘビ、 D1に1941と表示させる方法があれば教えて下さい。

ご自由にサンプルをダウンロードなさってください。

DATEVALUE.xlsx
Microsoft Excel 10.7 KB
DATEVALUE.xls
Microsoft Excel 20.0 KB

 

 

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日)の満年齢として表示されます。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

kamikaza1223 さん