見出し画像

[Excel]満年齢を出す計算式 DATEDIF関数 その3

目次 > 日付と時間のトラブルレスキュー

2025/4/20追加 PDF版「日付と時間の入力、表示、計算」を作成しました



期間計算に関する記事一覧はこちら

【まとめ】
エクセルで、満年齢を出す計算式
=DATEDIF(生年月日-1,基準日,“Y”)
*注意:
・年齢の起算日(1日目)は生年月日。
 ・「生年月日-1」にしないと、法的に正確でなくなる。
  また、1900年以前の年月日は計算できない。
2026/8/17追記 「うるう日」(2/29)の年齢には誤りが出る

目次

  1. 満●歳(満年齢)を出す計算式

  2. 生年月日から1を引く理由

  3. WEB記事やエクセル本では、正確でない説明が多い

  4. 【年数計算・年齢計算まとめ(DATEDIF関数)】

【説明】
過去記事で「日付1から日付2までで、丸何年経過したか(=満年数)を求める計算式」について説明しました。
前記事では「●年目」の出し方について説しました。)

その際、「日付1から日付2までの計算式では、「満●歳」(満年齢)が出せないので注意が必要」である旨、記載しました。

日付1から日付2までの満年数なら
=DATEDIF(日付1,日付2,“Y”)
で出ます。

R5年4月15日生まれの人は、
同年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に指摘されたので、検証してみたら・・・ ~日付と時刻のトラブルレスキュー~


いいなと思ったら応援しよう!