Excelで生年月日から年齢を計算する場合、通常は「今日時点」の年齢を出すことが多いですが、
「ある特定の日に何歳だったのか?」
「将来の日付に何歳になるのか?」
といった “指定日での年齢計算” が必要なシーンもありますよね。
✅ 入学・入社時点での年齢を出したい
✅ 将来の誕生日やイベント時の年齢を知りたい
✅ 保険・契約・選挙など、基準日ベースの年齢を出したい
本記事では、任意の日付を使って正確に年齢を計算する方法 をわかりやすく解説します!
目次
使用する関数:DATEDIF関数で正確に計算
Excelで年齢を計算するには、DATEDIF関数が最も正確です。
✅DATEDIF関数の基本構文
=DATEDIF(開始日, 終了日, "Y")
- 開始日:生年月日(例:A1セル)
- 終了日:指定した基準日(例:B1セル)
"Y":年単位で差を計算する指定
【Excel】年齢計算しようとしてDATEDIF関数が見つからない?【使えないときの原因と対処法】
A列に生年月日、B列に「基準日(指定日)」がある場合
✅年齢を求める数式
=DATEDIF(A2, B2, "Y")
これで A2の生年月日時点で、B2の日付における年齢 が求まります。
✅具体的な使用例
| 氏名 | 生年月日 | 指定日 | 年齢の数式 | 結果 |
|---|---|---|---|---|
| 山田太郎 | 1990/06/15 | 2024/04/01 | =DATEDIF(B2,C2,"Y") | 33 |
| 鈴木花子 | 2010/12/10 | 2025/01/01 | =DATEDIF(B3,C3,"Y") | 14 |
【Excel】指定日における年齢を計算する方法【過去・未来の任意日を指定して年齢計算】
誕生日がまだ来ていない月・日を考慮したい場合
誕生日がまだ来ていない年は、1歳引くというロジックを使いたい場合には、以下のような条件式を組み合わせた方法も有効です。
✅ 正確な年齢(誕生日が来ていなければ1歳引く)
=YEAR(C2)-YEAR(B2)-(TEXT(C2,"MMDD")<TEXT(B2,"MMDD"))
C2:指定日(例:2025/04/01)B2:生年月日(例:1990/06/15)
この方法では、日付の大小を文字列(MMDD)で比較して、誕生日を迎えているかどうかを判断します。
ワンポイント:特定日を固定したい場合
たとえば、「2025年4月1日時点の年齢」を複数人分一括で計算したい場合は、基準日をセル参照ではなく、数式内に直接書くことも可能です。
=DATEDIF(A2, DATE(2025,4,1), "Y")
または、固定セル(例:B1)に基準日を入れて、
=DATEDIF(A2, $B$1, "Y")
のように固定参照にすると便利です。
【Excel】印刷する際に1行目を固定する方法【各ページにヘッダーを表示】
「何歳何ヶ月」まで知りたい場合は?
「年+月」も知りたい場合には、DATEDIFを複数使って組み合わせましょう。
=DATEDIF(A2, B2, "Y") & "歳" & DATEDIF(A2, B2, "YM") & "ヶ月"
【Excel】「何歳何ヶ月」まで表示する年齢計算の方法【DATEDIF関数で簡単!】
よくあるエラーと注意点
| エラー内容 | 原因と対処法 |
|---|---|
#NUM! エラー | 「生年月日」より「指定日」が前になっている |
#VALUE! エラー | 日付の形式が不正(文字列や空白になっている) |
| 関数が出てこない | DATEDIFは隠し関数。手入力で使用する必要がある |
まとめ:指定日ベースの年齢計算はDATEDIFで簡単!
| 方法 | 内容 | 精度 |
|---|---|---|
=DATEDIF(生年月日, 指定日, "Y") | 満年齢(整数)を算出 | ◎ 正確 |
=YEAR-式+TEXT比較 | 誕生日未到来を調整できる | ◎ より厳密 |
& "歳" & DATEDIF(...,"YM") | 「○歳○ヶ月」形式の表示に対応 | ◎ 実務向け |
✨ 活用例
- 入学資格や受験資格のチェック
- 契約日や保険年齢の判定
- 過去データの年齢分析(○年○月○日時点の年齢)