DATEDIF関数を用いると年齢計算が可能です。
この使い方に関しては別記事[DATEDIF関数で年齢を児童計算する]をご参照ください。
ここではDATEDIF関数を使わずに計算する方法をご紹介します。
IF,DATE,YEAR,MONTH,DAY,(TODAY)関数を使います。
[本日の年-誕生年]をしたい。ただしまだ今年の誕生日を過ぎていなければ[-1]する
というのが基本的な考え方になります。
まずはTODAY関数を使わない方法を調べます。
セルB1に本日の日付として「2010/6/15」、セルB2に誕生日として「1970/6/20」を入力しておきます。なおまだ今年の誕生日は過ぎていません。
さて[本日の年-誕生年]は
YEAR(B1)-YEAR(B2)
で算出できます。上記の場合は「2010-1970=40」です。
次に本日の日付が誕生日を過ぎているかどうかを比較します。
その場合は「年を統一する」という作業が必要です。
「誕生日」を「今年(2010)の誕生日」「2010/6/20」に変換する必要があります。
セルB2を「今年の誕生日」にするには以下の計算式を使います。
DATE(YEAR(B1),MONTH(B2),DAY(B2))
セルB1(本日・2010/6/15)とこの日付(2010/6/20)とを比較します。
B1<DATE(YEAR(B1),MONTH(B2),DAY(B2))
本日の方が小さければ今年の誕生日はまだ来ていないということになります。
そのケースでは「-1」をする必要が発生します。
IF(B1<DATE(YEAR(B1),MONTH(B2),DAY(B2)),-1,0)
[本日の年-誕生年]を付け加えると
=YEAR(B1)-YEAR(B2)+IF(B1<DATE(YEAR(B1),MONTH(B2),DAY(B2)),-1,0)
が年齢を計算する式になります。
また[本日の日付]をセルB1ではなくTODAY()にした場合は以下の計算式になります。
=YEAR(TODAY())-YEAR(B2)+IF(TODAY()<DATE(YEAR(TODAY()),MONTH(B2),DAY(B2)),-1,0)