- ベストアンサー
Excel関数で誕生日から年齢を表す式について
Excel関数で、1つのセルにある個人の誕生年月日が入力されているとします。 そのセルに対応する別のセル上に、常にエクセルを読み込んだ日の時点の正確な 年齢を表すことができるIF関数というものが存在するでしょうか。 あると非常に便利なので、どなたかご存知の方は教えてくだい(__)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 No.3さんの方法は、誕生日当日に年齢が正確に表示されません。 (例えば生年月日に昨年の今日の日付を入れると0を返します) =TODAY()-誕生日のセル+1 とすればいいと思います。 一応確認ですが、私がNo.1に書いた方法(や、他の方が書かれている方法)では、2/29生まれの人は閏年以外の年は3/1に年齢が一つ増える計算になります。 それで問題ありませんか? 仮に2/29生まれの人は閏年以外の年は2/28に年齢を一つ増やしたい場合 A1セルに生年月日が入っているとして =DATEDIF(A1,TODAY()+IF(AND(DAY(DATE(YEAR(TODAY()),2,29))<>29,MONTH(A1)*100+DAY(A1)=229),1,0),"y") とすればいいと思います。 今年が閏年でなく、かつ誕生日が2/29の場合、今日の日付+1日と誕生日の差分を計算します。 それ以外の場合は今日の日付と誕生日の差分を計算します。
その他の回答 (4)
- mshr1962
- ベストアンサー率39% (7417/18945)
今日の日付(PCに表示されている日付)での年齢なら =DATEDIF(誕生日のセル,TODAY(),"Y") で表示出来ますが。。。
お礼
お忙しい時間をさいてアドバイスいただきありがとうございました。
- play_with_you
- ベストアンサー率37% (112/301)
IFにこだわる特別な理由があるのかもしれませんが、念のため最も分かりやすく楽で正しい方法を。 「別のセル」の数式を「=TODAY()-誕生日のセル」とし、「表示形式」>「ユーザー定義」で「yy」とするだけ。
お礼
シンプルな方法をご解説下さりありがとうございました。 とてもわかりよく参考にさせていただきました。
- aokii
- ベストアンサー率23% (5210/22062)
A1セルに、ある個人の誕生年月日が入力されているとして、 =DATEDIF(A1,IF(TODAY()-INT(TODAY())<A1-INT(A1),TODAY()-1,TODAY()),"y")&"歳"&DATEDIF(A1,IF(TODAY()-INT(TODAY())<A1-INT(A1),TODAY()-1,TODAY()),"ym")&"ヶ月"&DATEDIF(A1,IF(TODAY()-INT(TODAY())<A1-INT(A1),TODAY()-1,TODAY()),"md")&"日"
お礼
丁寧かつ詳細にアドバイスいただき大変さんこうになりました。 関数の凄さと楽しさまでを改めて知りました。 ありがとうございました。
- don9don9
- ベストアンサー率47% (299/624)
生年月日が入っているセルがA1だとすると =DATEDIF(A1,TODAY(),"y")
お礼
No.1を含めて懇切に解説をいただきありがとうございました。 大変参考になりました。