エクセルで日付の差を計算したいとき、「DATEDIF(デイトディフ)」関数はとても便利な機能です。しかし、エクセルの関数一覧には表示されないため、意外と知られていない隠れた関数でもあります。この記事では、DATEDIF関数の基本的な使い方や注意点、よくある活用例まで、初心者にもわかりやすく解説します。
DATEDIF関数とは?
DATEDIF関数は、2つの日付の間の「差」を求めるためのエクセル関数です。たとえば、誕生日から今日までの年数や、プロジェクトの開始日から終了日までの日数など、日付同士の間隔を簡単に計算できます。
基本の書式
=DATEDIF(開始日, 終了日, 単位)
- 開始日:計算を始める日付(例:A1セルに日付が入っている場合はA1)
- 終了日:計算を終える日付(例:B1セルに日付が入っている場合はB1)
- 単位:どの単位で差を求めるかを指定(”Y”、”M”、”D”など)
主な単位の種類
| 単位 | 意味 | 例 |
|---|---|---|
| “Y” | 年数の差 | 2020/1/1~2023/1/1 → 3年 |
| “M” | 月数の差 | 2020/1/1~2020/4/1 → 3か月 |
| “D” | 日数の差 | 2020/1/1~2020/1/10 → 9日 |
| “MD” | 日だけの差(年・月は無視) | 2020/1/1~2020/2/5 → 4日 |
| “YM” | 月だけの差(年は無視) | 2020/1/1~2021/4/1 → 3か月 |
| “YD” | 日だけの差(年は無視) | 2020/1/1~2021/1/10 → 9日 |
DATEDIF関数の使い方
年数の差を求める
たとえば、A1セルに「2000/4/1」、B1セルに「2024/6/24」と入力されている場合、年数の差を求めるには次のように入力します。
=DATEDIF(A1, B1, "Y")
この場合、24年と表示されます。
月数の差を求める
=DATEDIF(A1, B1, "M")
この場合、289か月と表示されます。
日数の差を求める
=DATEDIF(A1, B1, "D")
この場合、8850日と表示されます。
年と月を組み合わせて表示する
年と月を組み合わせて「○年○か月」と表示したい場合は、次のように工夫します。
=DATEDIF(A1, B1, "Y") & "年" & DATEDIF(A1, B1, "YM") & "か月"
このようにすると、「24年1か月」といった形で表示できます。
DATEDIF関数の注意点
1. 開始日が終了日より後だとエラーになる
DATEDIF関数は、開始日が終了日よりも後の場合、エラー(#NUM!)になります。必ず開始日が前、終了日が後になるようにしましょう。
2. エクセルの関数一覧に表示されない
DATEDIFは、エクセルの関数一覧や関数の自動入力候補には表示されません。手入力で関数名を入力する必要があります。
3. 「MD」「YM」「YD」単位は特殊な計算
「MD」「YM」「YD」は、年や月を無視して日や月だけの差を計算します。たとえば「MD」は、月が違っても日だけの差を計算するため、直感と異なる結果になることがあります。
4. うるう年や月末の扱いに注意
DATEDIF関数は、うるう年や月末の日付の扱いで思わぬ結果になることがあります。特に「MD」や「YM」単位を使う場合は、計算結果をよく確認しましょう。
DATEDIF関数の活用例
1. 年齢の自動計算
誕生日(A1)から今日までの年齢を自動で計算したい場合:
=DATEDIF(A1, TODAY(), "Y")
2. 勤続年数の計算
入社日(A1)から退職日(B1)までの勤続年数と月数を表示:
=DATEDIF(A1, B1, "Y") & "年" & DATEDIF(A1, B1, "YM") & "か月"
3. プロジェクトの期間(日数)の計算
開始日(A1)から終了日(B1)までの期間(日数)を求める:
=DATEDIF(A1, B1, "D")
4. 保険や契約の満了日までの残り期間
契約開始日(A1)と満了日(B1)から、残りの年数や月数を計算できます。
DATEDIF関数が使えない場合の代替方法
DATEDIF関数がうまく動作しない場合や、より柔軟な計算が必要な場合は、他の関数を組み合わせて計算することもできます。
日数の差を計算する場合
=B1 - A1
セルの書式設定を「標準」または「数値」に変更すると、日数が表示されます。
年数や月数の差を計算する場合
年数や月数の差を正確に求めるには、YEAR関数やMONTH関数を組み合わせて計算する方法もありますが、うるう年や月末の扱いなどでDATEDIFの方が簡単な場合が多いです。
まとめ
DATEDIF関数は、エクセルで日付の差を簡単に計算できる便利な関数です。年齢計算や勤続年数、プロジェクト期間の算出など、さまざまな場面で活用できます。ただし、開始日と終了日の順序や特殊な単位の扱いには注意が必要です。エクセルで日付の計算をしたいときは、ぜひDATEDIF関数を活用してみてください。

コメント