Excel関数 逆引き集 | 年齢を求める → DATEDIF(“y”)

Excel
スポンサーリンク

概要

生年月日から「現在の満年齢」を求めるなら、DATEDIF関数の単位 “y” が最短です。開始日に生年月日、終了日に TODAY()(今日)を渡すだけで、誕生日を過ぎているかまで含めて自動計算されます。表示を「歳」付きにしたり、月・日までの端数を加えて「X歳Yか月Z日」にするのも簡単です。


基本の使い方

書式

=DATEDIF(開始日, 終了日, "y")

“y” は“満年数”を意味します。誕生日を迎えていなければ加算されません。

今日時点の満年齢

=DATEDIF(A2, TODAY(), "y")

A2が生年月日。今日現在の満年齢が数値で返ります。

「◯歳」で表示

=DATEDIF(A2, TODAY(), "y") & "歳"

具体例

指定基準日で年齢を求める(学年名簿・イベント基準日)

=DATEDIF(A2, B2, "y")

A2: 生年月日、B2: 基準日(例:2025/04/01)。その日付時点の“満年齢”。

年齢を「歳・か月・日」まで表示

=DATEDIF(A2, TODAY(), "y") & "歳" &
DATEDIF(A2, TODAY(), "ym") & "か月" &
DATEDIF(A2, TODAY(), "md") & "日"

人に見せる帳票向けの表記。

今年の誕生日(到来日)を求める

=DATE(YEAR(TODAY()), MONTH(A2), DAY(A2))

今日と比較して「誕生日が過ぎたか」の判定にも使えます。


応用テンプレート

年齢で区分(未成年/成人など)のラベル化

=IF(DATEDIF(A2, TODAY(), "y")>=18, "成人", "未成年")

年齢が基準以上かの判定(TRUE/FALSE)

=DATEDIF(A2, TODAY(), "y") >= 65

生年月日から“次の誕生日”までの日数

=LET(
  dob, A2,
  nextbd, DATE(YEAR(TODAY()) + (DATE(YEAR(TODAY()),MONTH(dob),DAY(dob))<TODAY()), MONTH(dob), DAY(dob)),
  nextbd - TODAY()
)

“年齢早見表”を作る(名簿向け)

名簿の生年月日が縦に並ぶ前提で隣列へ年齢を一括表示。

=DATEDIF(A2:A100, TODAY(), "y")

(Microsoft 365の動的配列で一括計算)


よくあるつまずきと対策

開始>終了でエラー

DATEDIFは開始日が終了日を超えるとエラーになります。生年月日(開始)と基準日(終了)の前後関係を必ず確認してください。

文字列日付の誤解釈

“YYYY/MM/DD” の“文字列”は環境次第で誤認識します。セルを日付として入力するか、DATE(年,月,日)で生成しましょう。

“満年齢”の仕様

“y” は“誕生日到来前は加算しない”満年齢です。端数の月・日まで表示したい場合は “ym” と “md” を組み合わせます。

表示整形

DATEDIFの戻り値は数値。「◯歳」などの表示にしたいときは & で単位を付けるか、TEXTで整形してください。


例題

問題1: A2の生年月日から今日現在の“満年齢”をB2に表示してください。

=DATEDIF(A2, TODAY(), "y")

問題2: A2の生年月日から今日現在の「X歳Yか月Z日」をC2に表示してください。

=DATEDIF(A2, TODAY(), "y") & "歳" & DATEDIF(A2, TODAY(), "ym") & "か月" & DATEDIF(A2, TODAY(), "md") & "日"

問題3: A2の生年月日から“基準日D2時点”の満年齢をE2に表示してください。

=DATEDIF(A2, D2, "y")

問題4: A2の生年月日について、今日が“誕生日かどうか”をTRUE/FALSEでF2に表示してください。

=DATE(YEAR(TODAY()),MONTH(A2),DAY(A2))=TODAY()

問題5: A2の生年月日の“次の誕生日までの日数”をG2に表示してください。

=LET(dob,A2, nextbd, DATE(YEAR(TODAY()) + (DATE(YEAR(TODAY()),MONTH(dob),DAY(dob))<TODAY()), MONTH(dob), DAY(dob)), nextbd - TODAY())

まとめ

年齢は DATEDIF(生年月日, 基準日, “y”) が最短。今日なら TODAY()、基準日があるならその日付を使い、必要に応じて “ym” と “md” を足して「歳・か月・日」に整形。判定や区分はIFで、次の誕生日などの周辺ロジックはDATEと組み合わせれば、名簿・イベント管理・人事帳票まで一貫して扱えます。

タイトルとURLをコピーしました