[Excel]満年齢を出す計算式 DATEDIF関数 その3
▶ 目次 > 日付と時間のトラブルレスキュー
2025/4/20追加 PDF版「日付と時間の入力、表示、計算」を作成しました
【まとめ】
エクセルで、満年齢を出す計算式
=DATEDIF(生年月日-1,基準日,“Y”)
*注意:
・年齢の起算日(1日目)は生年月日。
・「生年月日-1」にしないと、法的に正確でなくなる。
また、1900年以前の年月日は計算できない。
・2026/8/17追記 「うるう日」(2/29)の年齢には誤りが出る。
目次
満●歳(満年齢)を出す計算式
生年月日から1を引く理由
WEB記事やエクセル本では、正確でない説明が多い
【年数計算・年齢計算まとめ(DATEDIF関数)】
【説明】
過去記事で「日付1から日付2までで、丸何年経過したか(=満年数)を求める計算式」について説明しました。
(前記事では「●年目」の出し方について説明しました。)
その際、「日付1から日付2までの計算式では、「満●歳」(満年齢)が出せないので注意が必要」である旨、記載しました。
日付1から日付2までの満年数なら
=DATEDIF(日付1,日付2,“Y”)
で出ます。

同年9月5日には、まだ満0歳です。
これは、当たり前すぎます。
満●歳(満年齢)を出す計算式
一方、
満年齢を出すに計算式は以下になります。
=DATEDIF(生年月日-1,基準日,“Y”)

生年月日から1を引く(1日前にする)必要があります。
生年月日から1を引く理由
その理由は・・・
通常のDATEDIF関数は、日付1である日の翌日が1日目(起算日)となります。これは民法の「初日不算入の原則」に合致しています。
一方、年齢は「年齢計算ニ関スル法律」により、誕生日が1日目(起算日)とされ、誕生日の前日に満年齢に達します(つまり、年は誕生日の前日に取る、ということです。)。詳細は別記事にします。
そのため、日付1に該当する日を「誕生日-1」(誕生日の前の日)にしないと、誕生日が1日目とならず、誕生日間際の満年齢に誤りが生じます。
*エクセルでは1900年以前の年月日は正しく集計できません。
また、それ以外でも計算が正しくない場合もあり得ます。
その場合は、ファイル → その他 → オプション → 詳細設定 → 下へスクロース → 「1904年から計算する」にチェックを入れてみてください。(詳細は別途説明予定)
WEB記事やエクセル本では、正確でない説明が多い
年齢の計算方法について、残念ながら、多くのWEB記事やエクセル本では「正確でない説明」がなされています。
計算式自体の説明は正しいのですが、法律上の年齢計算を踏まえると、「正確でない」と言わざる得ません。
詳細は別記事「誕生日の前日に年を取るのはなんで?、と思った方へ(WEB記事やエクセル本は不正確なものが多いので注意)」をご覧ください。
注意(2026/8/17)
DATEDIF関数を含め年齢計算では、うるう日(2/29)には誤りが出ます。
詳細は以下をご覧ください。
[EXCEL] DATEDIF関数による年齢計算は2/29生まれで破綻する、とCopilotに指摘されたので、検証してみたら・・・ ~日付と時刻のトラブルレスキュー~
