Excel関数 逆引き集 | 日付の差(日数)→ DATEDIF(“d”)

Excel
スポンサーリンク

概要

Excelで「2つの日付の差(日数)」を求めるなら、DATEDIF関数の "d" を使うのが最短です。DATEDIFは開始日から終了日までの差を、指定した単位で返す“隠し関数”で、特に "d" は純粋な経過日数を返します。請求期間、プロジェクトの経過日数、納期までの残り日数など、日単位の計算に最適です。


基本の使い方

書式と引数の意味

=DATEDIF(開始日, 終了日, "d")
  • 開始日と終了日は日付(セル参照やDATE/TODAYなど)
  • “d” は「日数差(経過日数)」を意味します(開始日から終了日までの“日数”)

例(最も基本)

=DATEDIF("2025/12/01","2025/12/17","d")   // 16

「12/1から12/17まで」は16日が経過(開始日を0日目として数えます)。


具体例

セル参照で日数差を求める

=DATEDIF(A2,B2,"d")

A2が「2025/12/01」、B2が「2025/12/17」なら「16」。

今日までの経過日数

=DATEDIF(C2,TODAY(),"d")

C2の開始日から「今日」までの日数を返します。

期限までの残り日数(負数対策込み)

=MAX(0, DATEDIF(TODAY(),D2,"d"))

今日からD2の期限までの残り日数。期限を過ぎていても0未満にならないよう安全に。


応用テンプレート

開始日・終了日が逆の場合の安全対策

=DATEDIF(MIN(E2,F2), MAX(E2,F2), "d")

開始日と終了日が逆でも正しい日数を返します(本来、開始>終了だとエラー)。

期間の“含め方”を変えたい(終了日も含む)

=DATEDIF(G2,H2,"d")+1

「開始・終了の両端を含めた日数」を取りたい場合に+1。

営業日だけの差(日〜土のうち平日+祝日除外対応)

=NETWORKDAYS(I2,J2, 祝日範囲)

土日と指定祝日を除いた営業日数を返します(純粋なDATEDIFの代替として)。


よくあるつまずきと対策

開始日が終了日より後だと #NUM! エラー

DATEDIFは「開始日 ≤ 終了日」でないとエラーになります。MIN/MAXで並べ替える、またはIFで事前にチェックしましょう。

“何日含めるか”の誤解

DATEDIF(“d”)は「開始日から終了日の前日までの経過日数」。両端を含めた日数が欲しければ「+1」します。

時刻は無視される

DATEDIFは「日付」ベース。時刻(時間・分・秒)は計算に影響しません。時刻込みの差が必要なら「終了-開始」に24時間換算で求めます。

=(J2-I2)*24   // 時間差(表示形式を標準/数値に)

DATEDIFは“隠し関数”

関数入力支援に出ないことがありますが、機能は有効です。単位は “d”(日)、”m”(月)、”y”(年)、”md”(月を無視した日差)、”ym”(年を無視した月差)、”yd”(年を無視した日差)があります。


例題

問題1: A2セル(開始日)からB2セル(終了日)までの純粋な経過日数をC2に表示してください。

解答例:

=DATEDIF(A2,B2,"d")

問題2: C2セルの開始日から「今日」までの経過日数をD2に表示してください。

解答例:

=DATEDIF(C2,TODAY(),"d")

問題3: E2セルの開始日からF2セルの終了日まで、両端を含めた日数をG2に表示してください。

解答例:

=DATEDIF(E2,F2,"d")+1

問題4: H2セルが期限日のとき、今日から期限までの残り日数をI2に表示し、期限を過ぎていたら0としてください。

解答例:

=MAX(0, DATEDIF(TODAY(),H2,"d"))

問題5: J2セル(開始)からK2セル(終了)までの営業日数(祝日一覧はM2:M20)をL2に表示してください。

解答例:

=NETWORKDAYS(J2,K2,M2:M20)

まとめ

日付の差をシンプルに求めたいなら、DATEDIFの "d" が最短です。開始・終了の順序、両端を含めるかどうか、営業日か暦日か――この3点を決めてから式を組めば迷いません。期限管理や期間集計の現場では「DATEDIF(暦日)」「NETWORKDAYS(営業日)」の使い分けが定番。まずは "d" を基本形として体に入れておきましょう。

タイトルとURLをコピーしました