Excelで生年月日から年齢を計算するには、
DATEDIF
関数と TODAY
関数の組み合わせが定番です。
この記事では、満年齢の出し方・自動計算・平均年齢の求め方・年齢別集計・エラー対策まで完全解説します。
Contents
DATEDIF関数で年齢を計算する基本式

=DATEDIF(A2, TODAY(), "Y")
- A2 に生年月日が入っていると仮定。
"Y"
は年単位の差(満年齢)。TODAY()
を使うので毎日自動更新されます。
年齢計算を正しくするコツ|うるう年もOK
DATEDIF
は内部で自動的にうるう年も計算してくれるので安心です。
特別な調整は不要で、誕生日が2月29日でも正しく計算されます。
月齢や日齢も出す|余りの月を表示
=DATEDIF(A2, TODAY(), "Y") & "歳" & DATEDIF(A2, TODAY(), "YM") & "ヶ月"
YM
は年を除いた余りの月数です。
未来日の入力エラーを防ぐIF関数

=IF(A2>TODAY(), 0, DATEDIF(A2, TODAY(), "Y"))
誤って未来日を入れたときは年齢0歳で返すようにしておくと安心です。
空白セルで#NUM!が出ないようにIFERRORを追加
=IFERROR(DATEDIF(A2, TODAY(), "Y"), "")
生年月日が空白のときは空文字を返して見た目を整えます。
平均年齢を出す方法
- 列に年齢計算式を入れて年齢を出す。
AVERAGE
関数でまとめて平均を取る。
=AVERAGE(B2:B20)
空白は自動で除外されます。
年齢別の人数を集計する|ピボットテーブル

- 年齢列を作る。
- データ範囲を選択して [挿入] → [ピボットテーブル]。
- 行ラベルに年齢を追加。
- 「グループ化」で10代・20代などまとめることも可能!
日付入力で失敗しないポイント
- 生年月日は必ず日付形式で入力する。
- 「1900/1/1」など4桁の西暦で入力。
- 入力形式が文字列になるとDATEDIFが計算できません。
VBAで年齢計算を関数化する例
Function CalcAge(Birth As Date) As Integer
CalcAge = Int(DateDiff("m", Birth, Date) / 12)
End Function
- DateDiffで月単位を12で割って年齢を算出する方法です。
よくあるFAQ

誕生日から年齢を求めるには?
=DATEDIF(誕生日, TODAY(), "Y")
でOKです。
満年齢を求める計算式は?
DATEDIF関数の "Y"
引数を使うと満年齢になります。
年齢を自動計算する方法は?
TODAY()
を組み合わせるだけで毎日自動更新!
平均年齢はどう求める?
年齢列をAVERAGEで計算すればOK。
年齢別に人数を集計するには?
ピボットテーブルの行ラベルに年齢を追加してグループ化。
まとめ
- 年齢計算は
DATEDIF
×TODAY
で自動化。 - IFERROR で空白や未来日エラーを防ぐ。
- 平均年齢も簡単に算出可能。
- 年齢別集計はピボットテーブルが便利!
参考リンク
ファイルを開くたびに自動で最新年齢にできるので、ぜひ活用してください!