日付と日付の「差」を求めたいときに便利なのが DATEDIF関数 です。
開始日と終了日を指定するだけで、日数・月数・年数などの差を簡単に計算できます。
この記事では、DATEDIF関数の基本的な使い方から、引数の種類、実務的な活用例までをわかりやすく紹介します。
DATEDIF関数とは?
DATEDIF関数は、2つの日付の間の期間(年数・月数・日数)を求める関数です。
Excelにはヘルプが表示されませんが、古くから使われている隠れた便利関数です。
書式
=DATEDIF(開始日, 終了日, 単位)
引数の説明
- 開始日:期間の開始日
- 終了日:期間の終了日
- 単位:返す値の種類(文字列で指定)
単位の種類と意味
| 単位 | 内容 |
|---|---|
| “Y” | 年単位の差を返す |
| “M” | 月単位の差を返す |
| “D” | 日数の差を返す |
| “MD” | 月と年を無視した日数の差を返す |
| “YM” | 年を無視した月数の差を返す |
| “YD” | 年を無視した日数の差を返す |
DATEDIF関数の使い方
例 1:2つの日付の年数差を求める
=DATEDIF(B3,C3,"Y")

→ B3が2020/4/1、C3が2025/3/31なら、結果は「4」
例 2:今日までの年齢を求める
=DATEDIF(C3,TODAY(),"Y")
終了日は、TODAY関数を使って日付を求めています。

→ セルC3が誕生日であれば、セルD3に現在の年齢を返す
よくある活用例
1. 年齢計算や勤続年数の表示
→ 誕生日や入社日からTODAY()を使って自動計算
2. 満月数の支払い回数や契約月数の計算
→ 料金計算・契約期間の管理に便利
3. 期間ごとの表示(履歴、スケジュール)
→ 「〇年〇か月〇日」のように可読性の高い表示が可能
注意点
- 単位はすべて ダブルクォーテーションで囲む必要がある(例:”Y”)
- 開始日 > 終了日 だとエラーになるため注意
- 関数の候補に表示されない「非表示関数」だが、通常通り使える
関連関数
まとめ
DATEDIF関数は、日付間の「年数・月数・日数」の差を柔軟に計算できる強力な関数です。
年齢や勤続年数、契約期間の表示など、日付ベースの業務で非常に重宝されます。TODAY関数やTEXT関数と組み合わせて、実用的でわかりやすい日付処理を実現しましょう!
関連記事:TODAY関数の使い方
関連記事:TEXT関数の使い方