プロが教えるわが家の防犯対策術!

Excel関数で、1つのセルにある個人の誕生年月日が入力されているとします。
そのセルに対応する別のセル上に、常にエクセルを読み込んだ日の時点の正確な
年齢を表すことができるIF関数というものが存在するでしょうか。

あると非常に便利なので、どなたかご存知の方は教えてくだい(__)

A 回答 (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日と誕生日の差分を計算します。
それ以外の場合は今日の日付と誕生日の差分を計算します。
    • good
    • 0
この回答へのお礼

No.1を含めて懇切に解説をいただきありがとうございました。
大変参考になりました。

お礼日時:2013/10/04 09:57

今日の日付(PCに表示されている日付)での年齢なら



=DATEDIF(誕生日のセル,TODAY(),"Y")

で表示出来ますが。。。
    • good
    • 0
この回答へのお礼

お忙しい時間をさいてアドバイスいただきありがとうございました。

お礼日時:2013/10/04 10:02

IFにこだわる特別な理由があるのかもしれませんが、念のため最も分かりやすく楽で正しい方法を。



「別のセル」の数式を「=TODAY()-誕生日のセル」とし、「表示形式」>「ユーザー定義」で「yy」とするだけ。
    • good
    • 1
この回答へのお礼

シンプルな方法をご解説下さりありがとうございました。
とてもわかりよく参考にさせていただきました。

お礼日時:2013/10/04 10:01

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")&"日"
    • good
    • 0
この回答へのお礼

丁寧かつ詳細にアドバイスいただき大変さんこうになりました。
関数の凄さと楽しさまでを改めて知りました。
ありがとうございました。

お礼日時:2013/10/04 09:59

生年月日が入っているセルがA1だとすると



=DATEDIF(A1,TODAY(),"y")
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!