DATEDIF関数の使い方|2つの日付の差を年・月・日で求める

DATEDIF関数の使い方|2つの日付の差を年・月・日で求める

ExcelのDATEDIF関数は、2つの日付間の差を求めるための関数です。年、月、日単位で日付の差を計算することができ、プロジェクトの進捗管理や年齢計算などに非常に便利です。

目次

DATEDIF関数の使い方|発注日から納品日までの日数を求める

手順:C2 に DATEDIF の式を入れて Enter

2024/7/1 に発注して 2024/8/31 に納品されるまでの日数を求めます。 C2 に次の式を入力して、Enter キーを押します❶。

C2 に入れる式
=DATEDIF(A2,B2,"YD")
A2 開始日(発注日)B2 終了日(納品日)"YD" 単位(日数)
ひとことで発注日から納品日までの期間を、指定した単位で求める
式を分けて読むと(色は画像の枠と同じ)
開始日A2
いつから?
→ 発注日
終了日B2
いつまで?
→ 納品日
単位"YD"
何で数える?
→ “YD”=年を無視した日数
自分の表で使うときは
青に始まりの日、オレンジに終わりの日、紫に単位(”Y”=年・”M”=月・”D”=日など)を入れます。例:生年月日(B 列)から今日までの年齢=DATEDIF(B2,TODAY(),"Y")
  • DATEDIF は関数の一覧に出てきません。式は手で入力します。
エクセルのDATEDIF関数で2つの日付の日数を求める式と、発注日と納品日のセルを色分けした画面
エクセルのDATEDIF関数で2つの日付の日数を求める式と、発注日と納品日のセルを色分けした画面

確認:7/1 から 8/31 までは 61 日

エクセルのDATEDIF関数で2024年7月1日から8月31日までが61日になったことを示した画面
エクセルのDATEDIF関数で2024年7月1日から8月31日までが61日になったことを示した画面

答えは 61 になりました❷。式は、次の順に計算しています。

  1. 7/1から8/31までを数える
    ⇒ 7月の残り 30 日+8月 31 日
  2. “YD”(年は無視した日数)で返す
    ⇒ 61 日
ヒント:年をまたぐ日数は “D”
“YD” は年の差を無視します。何年もまたぐ日数をそのまま数えるときは “D” を使います。

関数の説明

DATEDIF関数は、開始日と終了日の間の差を特定の単位(年、月、日)で返します。この関数は、日付計算において強力なツールであり、特に年齢やサービス期間の計算に有用です。

関数

対応バージョン

Excel 2007以降のすべてのバージョンで使えます(Excel 2003でも使えます)。

構文

DATEDIF関数の構文
数式=DATEDIF(start_date,end_date,unit)
ひとことで2つの日付の期間を求める
start_date
計算の開始日を指定します。日付文字列、シリアル値、または日付を含むセル参照が使用できます。
end_date
計算の終了日を指定します。日付文字列、シリアル値、または日付を含むセル参照が使用できます。
unit
結果を返す単位を指定します。 “Y”(年)、”M”(月)、”D”(日)、”MD”(月日)、”YM”(年月)、”YD”(年日)があります。

引数

DATEDIF関数の引数は以下の通りです:

引数説明
start_date計算の開始日を指定します。日付文字列、シリアル値、または日付を含むセル参照が使用できます。
end_date計算の終了日を指定します。日付文字列、シリアル値、または日付を含むセル参照が使用できます。
unit結果を返す単位を指定します。 “Y”(年)、”M”(月)、”D”(日)、”MD”(月日)、”YM”(年月)、”YD”(年日)があります。

関数作成のポイント

  • start_dateとend_dateは、有効な日付形式で指定する必要があります。
  • unitは、計算したい単位を適切に選択します。例えば、年単位で差を計算するには”Y”を使用します。

関数活用のポイント

  • 年齢計算やサービス期間の計算に最適です。
  • 特定の単位で日付の差を求めることができるため、柔軟な日付計算が可能です。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

使用例

サンプルデータ

練習用ファイルと同じ配置の、サンプルデータです。下の練習ツールで、黄色いセルを書き換えると、結果がその場で変わります。

ABC
1発注日納品日日数
22024/7/12024/8/3161

サンプル式

セルC2に、次の式を入れます。

C2に入力:2つの日付の期間を求める
数式=DATEDIF(A2,B2,"YD")
ひとことで2つの日付の期間を求める
A2
開始日です
B2
終了日です
"YD"
単位です
補足結果は「61」です。

A2からB2までの期間を、単位 “YD” で返します。 結果は「61」です。

2つの日付の差を年を無視して日数で求める(DATEDIF)式 = DATEDIF(A2, B2, "YD") の解説図。C2に入力する
C2に = DATEDIF(A2, B2, "YD") を入力。同じ年の 7/1 から 8/31 まで 31 + 30 = 61日

サンプルデータダウンロード

よくある質問

DATEDIF関数が使えない・関数の候補に出てこないときは?

DATEDIF関数は、関数の候補や[関数の挿入]の一覧には出てきません。それでも =DATEDIF(A2,B2,"Y") のように最後まで手で入力すれば使えます。うまくいかないときは、次のエラーを確かめます。

DATEDIF関数が #NUM! になるのはなぜ?

開始日が終了日より後になっているか、単位の文字が間違っています。試したところ、開始日 2026/4/1・終了日 2025/4/1 では #NUM! で、2つを入れ替えると 1 になりました。単位を “YY” にしても #NUM! です。単位は “Y”・”M”・”D”・”YM”・”MD”・”YD” のどれかで、小文字の “y” でも動きました。

DATEDIF関数が #VALUE! になるのはなぜ?

日付として読めない文字が入っています。終了日が「あいう」では #VALUE! でした。一方「2026年4月1日」のように日付として読める文字なら、そのまま計算されました。年齢や勤続年数の求め方は 年齢・勤続年数・日数を求める方法でまとめています。

練習用Excelファイル(無料ダウンロード)
この記事の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

まとめ

DATEDIF関数は、開始日と終了日の間の差を特定の単位で返すための強力なツールです。年齢計算やサービス期間の計算など、さまざまな日付計算に活用できます。正確な日付差を求める際に、ぜひこの関数を利用してみてください。

関連のある関数

関連関数

関数説明
YEARFRAC2つの日付間の年数の小数部を計算します。
EDATE指定された月数前または後の日付を返します。
EOMONTH指定された月数前または後の月末の日付を返します。
DAYS2つの日付間の日数を計算します。
NETWORKDAYS2つの日付間の営業日数を計算します。

以上がExcelのDATEDIF関数に関する詳細な解説です。この関数を活用して、さまざまな日付計算を効率的に行いましょう。

基本から確認したいときは、エクセルで年齢・勤続年数を求める方法もあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次