- 締切済み
Excelで年令算出の関数
昭和=S,平成=H表示での生年月日から、今日ではなく、過去の日付での年齢を求める問題がありました。どのようにすればよいのでしょうか、教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tsubu-yuki
- ベストアンサー率46% (179/386)
DATEDIF関数はEXCEL2007以降は 分析ツールの導入無しでも使えるようになりました。 ※2003以前をお使いでしたら、導入が必要ですが。 ちなみに、MS-Officeの公式サイトにも https://support.office.com/ja-jp/article/DATEDIF-%E9%96%A2%E6%95%B0-25dba1a4-2812-480b-84dd-8b32a451b35c との記載が見られます。 なので、上記ページの「既知の問題」に気をつけてお使いください。 とりあえず・・ 「生年月日」がA1セルにあり、 数値の表示形式で「ge.m.d」として > 昭和=S,平成=H表示での生年月日 を入力している場合、 「年齢を算定する日」がB1セルにあるとすると、 式:=DATEDIF(A1,B1,"Y") で算定する日の満年齢を計算できます。 ※日本語が少し難解かもしれません。悪しからず。 ただし・・杞憂とは思うのですが・・・ 「生年月日」が文字列で例えば「S8年12月23日」と 入力してある場合は少しだけ工夫が必要です。 ※「表示形式」で「S8年12月23日」と見せている場合は問題ないです。 同様に「生年月日」がA1、「算定する日」がB1セルにあるとすると 式:=DATEDIF(DATEVALUE(REPLACE(A1,1,1,IF(LEFT(A1,1)="S","昭和",IF(LEFT(A1,1)="H","平成","")))),B1,"Y") ※一例です。もっと解りやすい式もあると思いますよ。 という感じで、略号を置き換えてやらないといけません。 んー。長いですね(笑)。 ですが、これが「混在」しているともっと大変です。 なので、「生年月日」は日付シリアル値で、 表示形式(「ge.m.d」など)で元号表示に してやることを強くオススメします。 以上、蛇足でした。
- chie65536(@chie65535)
- ベストアンサー率44% (8802/19961)
平成12年1月13日生まれの人の、平成29年6月1日の時点での年齢を求める =DATEDIF(DATEVALUE("H12/1/13"),DATEVALUE("H29/6/1"),"Y") なお「DATEDIF」は、Excel 2003までは「分析ツール」を組み込まないと機能しません。 また、ExcelのDATEDIFには「特定の条件で正しい値にならないバグがある」ので、Microsoftは「正式サポートしてない関数」になっています(上記の使用方法ではバグは発生しないので問題はありません)