DATEDIF関数 – 日付と時刻

DATEDIF関数 – 2つの日付の差を年・月・日単位で求める関数


1. 使い方と活用例

DATEDIF関数は、2つの日付の差を「年」「月」「日」単位で計算できる関数です。
開始日から終了日までの期間を柔軟に求めることができ、経過年数、在職期間、年齢計算などによく使用されます。
古くから存在する関数ですが、関数一覧には表示されない「隠し関数」のひとつです。

2. 基本の書式

=DATEDIF(開始日, 終了日, 単位)

3. 引数の説明

  • 開始日 – 期間の起点となる日付を指定します。
  • 終了日 – 期間の終点となる日付を指定します。開始日より後の日付である必要があります。
  • 単位 – 差の計算単位を文字列で指定します(例:”Y”, “M”, “D” など)。

4. 使用シーン

  • 2つの日付から年齢を計算する場合
  • 入社日からの在職期間を「年・月・日」形式で求める場合
  • 顧客契約の経過期間を把握したい場合

5. 応用のポイント

DATEDIF関数は便利な反面、終了日が開始日よりも前だとエラーになります。
また、単位はダブルクォーテーションで囲む必要があります(例:”Y”)。
以下のような単位が指定可能で、それぞれ意味が異なります。

  • “Y” – 完全な「年」の差を返す
  • “M” – 完全な「月」の差を返す
  • “D” – 日数の差を返す
  • “MD” – 月と年を無視して「日」の差を返す
  • “YM” – 年と日を無視して「月」の差を返す
  • “YD” – 年を無視して「日」の差を返す

6. 具体例とその解説

=DATEDIF(DATE(1990,4,2), DATE(2025,4,2), "Y")

この式は1990年4月2日から2025年4月2日までの「年」の差、つまり35を返します。

=DATEDIF(DATE(1990,4,2), DATE(2025,4,2), "YM")

この式は同期間における「余りの月数」を返します。年を無視して0となります。

=DATEDIF(DATE(1990,4,2), DATE(2025,4,2), "MD")

この式は「日」の差のみを返します。今回は同じ日なので0になります。

7. 関連関数の紹介

  • DATE関数 – 年・月・日から日付を作成する関数
  • TODAY関数 – 現在の日付(今日)を取得する関数
  • YEARFRAC関数 – 年単位での経過期間を小数で返す関数
  • NETWORKDAYS関数 – 営業日(平日)の数を求める関数

8. まとめ

DATEDIF関数は、2つの日付の間隔を柔軟に求めるために便利な関数です。
単位によって年数、月数、日数などを個別に取得できるため、年齢計算や契約期間の分析に適しています。
ただし、Excelの関数一覧には表示されないため、知っている人だけが使える「隠れた便利関数」として扱われています。

9. 対応バージョン

DATEDIF関数は、Lotus 1-2-3 互換性のために用意された関数で、Excel 2000以降で使用可能です。
ただし、関数一覧や入力補助には表示されません。構文ミスがあっても修正候補が出ないため、正確な記述が必要です。

10. 関連記事

隠れ関数?DATEDIF関数が関数一覧に表示されない理由