日付と日付の「差」を求めたいときに便利なのが DATEDIF関数 です。
開始日と終了日を指定するだけで、日数・月数・年数などの差を簡単に計算できます。
この記事では、DATEDIF関数の基本的な使い方から、引数の種類、実務的な活用例までをわかりやすく紹介します。
DATEDIF関数とは?
DATEDIF関数は、2つの日付の間の期間(年数・月数・日数)を求める関数です。
Excelにはヘルプが表示されませんが、古くから使われている隠れた便利関数です。
書式
=DATEDIF(開始日, 終了日, 単位)
引数の意味
- 開始日:期間の開始日(例:A1)
- 終了日:期間の終了日(例:TODAY()など)
- 単位:返す値の種類(文字列で指定)
単位の種類と意味
単位 | 内容 |
---|---|
“Y” | 年単位の差を返す |
“M” | 月単位の差を返す |
“D” | 日数の差を返す |
“MD” | 月と年を無視した日数の差を返す |
“YM” | 年を無視した月数の差を返す |
“YD” | 年を無視した日数の差を返す |
基本的な使い方
例 1:2つの日付の年数差を求める
=DATEDIF(A1, B1, "Y")
→ A1が2010/4/1、B1が2024/4/1なら、結果は「14」
例 2:今日までの年齢を求める
=DATEDIF(B2, TODAY(), "Y")
→ B2が誕生日であれば、現在の年齢を返す
例 3:満年数・月数・日数を組み合わせて表示
=DATEDIF(A1, B1, "Y") & "年" & DATEDIF(A1, B1, "YM") & "か月" & DATEDIF(A1, B1, "MD") & "日"
→ 例:「2年3か月15日」
よくある活用例
1. 年齢計算や勤続年数の表示
→ 誕生日や入社日からTODAY()を使って自動計算
2. 満月数の支払い回数や契約月数の計算
→ 料金計算・契約期間の管理に便利
3. 期間ごとの表示(履歴、スケジュール)
→ 「〇年〇か月〇日」のように可読性の高い表示が可能
注意点
- 単位はすべて ダブルクォーテーションで囲む必要がある(例:”Y”)
- 開始日 > 終了日 だとエラーになるため注意
- 関数の候補に表示されない「非表示関数」だが、通常通り使える
関連関数
関数 | 内容 |
DATEDIF | 2つの日付の差を計算 |
TODAY | 今日の日付を返す(動的に更新) |
DATE | 年・月・日から日付を作成 |
YEAR/MONTH/DAY | 各部分の抽出に便利 |
まとめ
DATEDIF関数は、日付間の「年数・月数・日数」の差を柔軟に計算できる強力な関数です。
年齢や勤続年数、契約期間の表示など、日付ベースの業務で非常に重宝されます。TODAY関数やTEXT関数と組み合わせて、実用的でわかりやすい日付処理を実現しましょう!