Excelで名簿や管理表を作成する際に、「生年月日から年齢を自動で計算できたら便利だな」と思ったことはありませんか?
✔ 毎年手動で年齢を更新するのが面倒…
✔ TODAY関数を使って、いつ開いても現在の年齢が表示されるようにしたい
✔ 誕生日がまだ来ていない場合にも、正確な「満年齢」を表示したい
そんなときに使えるのが、DATEDIF関数 × TODAY関数の組み合わせです!
この記事では、初心者の方でも簡単にできる「生年月日から年齢を自動で計算する方法」を分かりやすくご紹介します。
使用する関数
DATEDIF関数は、
年齢計算で非常によく使われる便利な関数です。
ただし、
「開始日と終了日の順番」や、
「Y・YMの意味」を理解していないと、
エラーや誤計算につながることがあります。
まずは、
年齢を正しく自動計算する基本の数式から確認していきましょう。
| 関数 | 機能 |
|---|---|
DATEDIF | 2つの日付の差を求める関数(隠し関数) |
TODAY() | 今日の日付を自動取得する関数 |
✅生年月日から満年齢を求める数式
年齢計算は、
単純に「今年−生年」では正確になりません。
特に、
誕生日がまだ来ていない場合は、
1歳ずれてしまうケースがあります。
DATEDIF関数を使うことで、
満年齢を自動で正確に計算できるようになります。
セルA1に生年月日が入力されている場合、以下の数式を使えば現在の年齢が表示されます:
=DATEDIF(A1, TODAY(), "Y")
✅ これで「今日時点での満年齢」が表示されます。
Excelを開くたびに、TODAY関数が自動更新されるため、年齢も自動で最新に!
DATEDIF関数を使った年齢の自動計算方法は、動画でも確認できます。
生年月日から満年齢を求める使用例
| 氏名 | 生年月日 | 年齢の数式 | 結果(2025年2月10日基準) |
|---|---|---|---|
| 佐藤一郎 | 1990/03/15 | =DATEDIF(B2, TODAY(), "Y") | 34歳 |
| 山田花子 | 2005/12/25 | =DATEDIF(B3, TODAY(), "Y") | 19歳 |
DATEDIF関数は非常に便利ですが、
Excelでは「隠し関数」として扱われているため、
関数候補に表示されず戸惑うケースも少なくありません。
特に、
「関数が見つからない」
「入力してもエラーになる」
と悩む方は非常に多いです。
DATEDIF関数が使えない原因や対処法を詳しく確認したい方は、
以下の記事もあわせてご覧ください。
▶ 【Excel】年齢計算しようとしてDATEDIF関数が見つからない?【使えないときの原因と対処法】
✅「○歳○ヶ月」形式で表示する方法
保険・学校・人事管理などでは、
「満年齢だけ」でなく、
「何歳何ヶ月」まで必要になるケースもあります。
DATEDIF関数を組み合わせることで、
年齢をより細かく表示できます。
「何歳何ヶ月」で表示したいときは次のようにします:
=DATEDIF(A1, TODAY(), "Y") & "歳" & DATEDIF(A1, TODAY(), "YM") & "ヶ月"
✅ YM は「年を除いた月数」を意味するので、「○歳○ヶ月」が正確に表示されます。
「○歳○ヶ月」を自動表示する設定方法は、動画でも確認できます。
DATEDIF関数を使うことで、
「満年齢」だけでなく、
「○歳○ヶ月」まで細かく表示できるようになります。
特に実務では、
保険・学校・人事管理などで、
月単位まで必要になるケースも少なくありません。
年齢をより詳細に表示する方法を詳しく確認したい方は、
以下の記事もあわせてご覧ください。
▶ 【Excel】「何歳何ヶ月」まで表示する年齢計算の方法【DATEDIF関数で簡単!】
DATEDIF関数が使えない・出てこない?
✔ 原因と対処法
- DATEDIFはExcelの「隠し関数」のため、オートコンプリートに表示されません。
- 関数としては使用可能ですが、手入力が必要です。
- 構文の順序を間違えると
#NUM!エラーが出るため注意!
正しい構文
=DATEDIF(開始日, 終了日, "Y")
※生年月日(開始日)が「前」に来るようにしましょう。
✅将来の日付に対して年齢を計算する
例えば、入学日や試験日の時点での年齢を知りたい場合は、TODAY() の代わりに指定日を使えばOKです。
例:生年月日がA2、基準日がB2にある場合
=DATEDIF(A2, B2, "Y")
✅ 過去・未来どちらの年齢でも計算可能です。
⚠ よくあるトラブルと対処法
| エラー・現象 | 主な原因 | 解決方法 |
|---|---|---|
#VALUE! エラー | 生年月日が日付形式でない(文字列) | セルの書式を「日付」にする |
#NUM! エラー | 生年月日がTODAYより後になっている | セルの内容を見直す |
| 関数が候補に出てこない | DATEDIFは候補に表示されない | 手入力で関数を入力する |
まとめ
| 目的 | 数式例 |
|---|---|
| 満年齢だけを出したい | =DATEDIF(A1, TODAY(), "Y") |
| ○歳○ヶ月で表示したい | =DATEDIF(A1, TODAY(), "Y") & "歳" & DATEDIF(A1, TODAY(), "YM") & "ヶ月" |
| 任意の日に対して年齢を出す | =DATEDIF(A1, B1, "Y")(B1に指定日) |
🎯 実務での活用シーン
- 名簿や社員一覧の年齢自動更新
- 保険・契約書類の年齢チェック
- 入学・採用時点での年齢計算
- 顧客の年齢による分類・分析
年齢計算は一見シンプルですが、
基準日・表示形式・更新方法をどう設計するかで、
管理表の使いやすさは大きく変わります。
年齢計算を“部分理解”ではなく“設計視点”で整理したい方は、
▶ 【Excel】年齢計算の完全ガイド|自動更新・指定日・何歳何ヶ月まで網羅
もあわせてご覧ください。