Excel で生年月日から特定日における年齢を計算する方法


Excel で生年月日から現在の年齢を計算する方法はありますか?

「DATEDIF関数」を使えば簡単にできるわ。

でも関数の候補一覧には「DATE」まで入力しても「DATEDIF」は出てこないですよ。


もともとは Excel 以外の表計算ソフトで採用された関数なの。でも、そのソフトとの互換性を持たせるために Excel でも使えるようになっているから大丈夫。


年齢の計算以外でも利用する場面はありますか?

今年で何周年、何カ月目、何日目、といった計算にも使えるわ。
説明
「DATEDIF関数」はかつて人気だった表計算ソフト Lotus 1-2-3 で採用されていた関数で、当時、互換性を持たせるために Excel でも使えるようにしたものです。
現在もサポートされているため、最新の Excel でも使えるし、年数や月数の計算にはよく利用されています。
とはいえ他社ソフトとの互換性のために用意された関数なので、Excel の「関数の挿入」画面で「日付/時刻」の関数を探しても「DATEDIF」は見つかりません。

「DATEDIF (デイトディフ) 関数」の書式は以下のとおり。
=DATEDIF(開始日,終了日,単位)
最後の「単位」には、次のような値を指定できます。
"Y" : 期間内の満年数
"M" : 期間内の満月数
"D" : 期間内の日数
そこで特定日における満年齢を調べるなら「開始日」に生年月日、「終了日」に特定日、「単位」に "Y" を入力します。
例えば、物語の中で主人公の誕生日は「2003年4月7日」なので、その主人公が実在しているとすると、2024年6月1日現在、その年齢は
=DATEDIF("2003/4/7","2024/6/1","Y")
で計算でき、実際にExcelで入力すると結果は「21」となり、主人公が実在するなら、現在、満21歳ということになります。

ここでいう「満年齢」の数え方は生まれた時が0歳で,翌年の誕生日の前日終了をもって「満1歳」としています。
もちろん生年月日を直接関数に入力するのではなく、別のセルに入力し、そのセルを「開始日」に指定することもできます。
生年月日を セルA1、特定日を セル A2 に入力する場合
=DATEDIF(A1,A2,"Y")
で計算できます。

ここで A2 に当日の日付が入るように
=Today()
を入力しておけば、自動で今日現在の年齢が表示されます。
年齢以外にも「単位」を "M" にすれば「何カ月目」、"D" にすれば「何日目」といったことも計算もできるので、記念日を調べるときなどに使えます。
例えば「今日は2024年が始まってから何日目?」が知りたいなら
=DATEDIF("2024/1/1",TODAY(),"D")
で計算できます。
注意点として、Excel は1900年より前の日付を使った計算はできないので、例えば150年以上続く老舗企業が何周年か、1900年以前に生まれた歴史上の人物が生誕何年かなどを「DATEDIF関数」で調べようとしてもエラーになってしまいます。
例えば坂本龍馬の生年月日は1836年1月3日ですが、
=DATEDIF("1836/1/3", TODAY(),"Y")
を計算するとエラーになってしまいます。

取り合えず1900年以降であれば大丈夫です。
執筆者: 林 俊二