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以降で使用可能です。
ただし、関数一覧や入力補助には表示されません。構文ミスがあっても修正候補が出ないため、正確な記述が必要です。