Excel関数入門:DATEDIF関数の使い方

日付と日付の「差」を求めたいときに便利なのが 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”)
  • 開始日 > 終了日 だとエラーになるため注意
  • 関数の候補に表示されない「非表示関数」だが、通常通り使える

関連関数

関数内容
DATEDIF2つの日付の差を計算
TODAY今日の日付を返す(動的に更新)
DATE年・月・日から日付を作成
YEAR/MONTH/DAY各部分の抽出に便利

まとめ

DATEDIF関数は、日付間の「年数・月数・日数」の差を柔軟に計算できる強力な関数です。
年齢や勤続年数、契約期間の表示など、日付ベースの業務で非常に重宝されます。TODAY関数やTEXT関数と組み合わせて、実用的でわかりやすい日付処理を実現しましょう!