Excel一覧 Excel関数 年齢計算 計算・数値処理

【Excel】生年月日から年齢を自動計算する方法【DATEDIF関数で正確&ラクラク】

Excelで名簿や管理表を作成する際に、「生年月日から年齢を自動で計算できたら便利だな」と思ったことはありませんか?

✔ 毎年手動で年齢を更新するのが面倒…
✔ TODAY関数を使って、いつ開いても現在の年齢が表示されるようにしたい
✔ 誕生日がまだ来ていない場合にも、正確な「満年齢」を表示したい

そんなときに使えるのが、DATEDIF関数 × TODAY関数の組み合わせです!

この記事では、初心者の方でも簡単にできる「生年月日から年齢を自動で計算する方法」を分かりやすくご紹介します。

使用する関数

DATEDIF関数は、
年齢計算で非常によく使われる便利な関数です。

ただし、
「開始日と終了日の順番」や、
「Y・YMの意味」を理解していないと、
エラーや誤計算につながることがあります。

まずは、
年齢を正しく自動計算する基本の数式から確認していきましょう。

関数機能
DATEDIF2つの日付の差を求める関数(隠し関数)
TODAY()今日の日付を自動取得する関数

✅生年月日から満年齢を求める数式

年齢計算は、
単純に「今年−生年」では正確になりません。

特に、
誕生日がまだ来ていない場合は、
1歳ずれてしまうケースがあります。

DATEDIF関数を使うことで、
満年齢を自動で正確に計算できるようになります。

セルA1に生年月日が入力されている場合、以下の数式を使えば現在の年齢が表示されます:

=DATEDIF(A1, TODAY(), "Y")

✅ これで「今日時点での満年齢」が表示されます。
Excelを開くたびに、TODAY関数が自動更新されるため、年齢も自動で最新に!

DATEDIF関数を使った年齢の自動計算方法は、動画でも確認できます。

https://youtube.com/shorts/h0VEVd1ixhc

生年月日から満年齢を求める使用例

氏名生年月日年齢の数式結果(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 は「年を除いた月数」を意味するので、「○歳○ヶ月」が正確に表示されます。

「○歳○ヶ月」を自動表示する設定方法は、動画でも確認できます。

https://youtube.com/shorts/86husxxjIdA

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】年齢計算の完全ガイド|自動更新・指定日・何歳何ヶ月まで網羅
もあわせてご覧ください。

    -Excel一覧, Excel関数, 年齢計算, 計算・数値処理