
「2つの日付の差を年・月・日単位で正確に出したい」
「誕生日から年齢を計算したい」
そんなときに便利なのが DATEDIF関数 です。
DATEDIF関数は、開始日と終了日を指定することで、年数・月数・日数の差を求められる関数です。
実務での年齢計算、勤続年数、期間の集計など、日付差の処理に広く使われています。
この記事では、DATEDIF関数の構文や使用例、間違えやすい注意点まで丁寧に解説します。
目次
DATEDIF関数とは?
DATEDIF関数(Date Difference)は、開始日と終了日を指定して、期間の差を年・月・日単位で求める非公式関数です。
Excelの関数一覧には表示されませんが、利用可能です。
■ 構文
=DATEDIF(開始日, 終了日, 単位)
- 開始日:差の起点となる日付
- 終了日:差の終点となる日付
- 単位:”Y”(年) / “M”(月) / “D”(日)など
使用例データ(サンプル表)

セル | A列(開始日) | B列(終了日) | C列(年数差) | D列(月数差) | E列(日数差) |
---|---|---|---|---|---|
1 | 2000/1/1 | 2025/5/16 | =DATEDIF(A2,B2,"Y") → 25年 | =DATEDIF(A2,B2,"M") → 304ヶ月 | =DATEDIF(A2,B2,"D") → 9267日 |
単位の一覧と意味
単位 | 意味 | 例(2020/1/1〜2023/5/16) |
---|---|---|
“Y” | 年数の差(端数切り捨て) | 3 |
“M” | 月数の差(端数切り捨て) | 41 |
“D” | 日数の差 | 1231 |
“YM” | 年を無視した月数の差 | 4(例:1月 → 5月) |
“MD” | 年・月を無視した日数の差 | 15(例:1日 → 16日) |
“YD” | 年を無視した日数の差 | 135(1月1日 → 5月16日) |
実務で役立つ活用例
年齢を計算する
=DATEDIF(A2, TODAY(), "Y")
→ 生年月日(A2)から今日の年齢を自動計算。
勤続年数・在籍期間を出す
=DATEDIF(B2, TODAY(), "Y") & "年" & DATEDIF(B2, TODAY(), "YM") & "ヶ月"
→ 年+月でわかりやすく表示。
誕生日まであと何日かを求める
=DATEDIF(TODAY(), DATE(YEAR(TODAY()), MONTH(A2), DAY(A2)), "D")
→ A2に次の誕生日を設定。
注意点と特徴
- DATEDIF関数は正式な関数一覧に表示されません(非表示関数)
- 終了日が開始日より前だとエラーになります(#NUM!)
- 書式ミス(単位の綴り間違いなど)でもエラーになるため注意
- “MD”や”YM”は計算がやや複雑なので結果確認が重要
まとめ:DATEDIF関数で日付差を柔軟に処理!
- DATEDIF関数は2つの日付の差を柔軟に計算できる便利な非公開関数
- 年齢や在籍期間、契約期間などの計算に最適
- TODAY関数やDATE関数と組み合わせれば動的な期間管理が可能
- 書式や使い方に少しクセがあるが、習得すれば実務で非常に役立つ!
期間の計算や日付差の処理をする場面では、DATEDIF関数をぜひ活用してみてください。

最後までお読みいただきありがとうございます。
コメント
※ コメントは確認後に公開されます。反映まで少し時間がかかる場合があります。