Excel 日数計算|日付差分・初日を含む・土日除外の公式
開始日と終了日を入力すると、Excelで使える日数計算の公式を自動表示。通常の日数、初日を含む、両端入れ、今日まで、土日を除く営業日数をまとめて確認できます。
Excel日数計算の公式早見表
実務向け日数計算は目的によって使う公式が変わります。迷ったらまずは「終了日-開始日」、初日も数える場合は「+1」、土日を除く場合はNETWORKDAYSを使います。
=B2-A2
開始日を含まない日付差分。最もシンプルな方法です。
=B2-A2+1
開始日と終了日の両方を数える場合に使います。
=DAYS(B2,A2)
終了日と開始日の差を返します。結果は=B2-A2と同じ考え方です。
=TODAY()-A2
開始日から今日までの経過日数。ファイルを開く日によって自動更新されます。
=TODAY()-A2+1
開始日を1日目として数える場合の公式です。
=NETWORKDAYS(A2,B2)
土曜・日曜を除いた稼働日数を計算します。
=NETWORKDAYS(A2,B2,$E$2:$E$20)
祝日リストをセル範囲で用意して第3引数に指定します。
=WORKDAY(A2,30)
指定した営業日数だけ進んだ日付を返します。
Excelの日付はシリアル値
=B2-A2 が基本です。
結果が1日ずれる理由
=B2-A2 は「日付と日付の間隔」を返すため、開始日は通常カウントされません。開始日も終了日も数える「両端入れ」にしたい場合は +1 が必要です。
土日を除くならNETWORKDAYS
=NETWORKDAYS(A2,B2) を使います。日本の祝日はExcelが自動判定するわけではないため、祝日リストを別途用意して第3引数に指定します。
関数別の使い分け
公式の選び方| 関数・方法 | 公式 | 向いている用途 | 注意点 |
|---|---|---|---|
| 直接相減 | =B2-A2 |
単純な日付差分、経過日数 | 一番わかりやすく、古いExcelでも使えます。 |
| DAYS関数 | =DAYS(終了日,開始日) |
新しいExcelで日数差分を明示したい場合 | 引数の順番が「終了日, 開始日」なので入力順に注意します。 |
| DATEDIF関数 | =DATEDIF(開始日,終了日,"D") |
日数・月数・年数を切り分けたい場合 | 総日数だけなら直接相減やDAYSの方がシンプルです。 |
| TODAY関数 | =TODAY()-A2 |
開始日から今日までの日数 | 今日の日付で自動更新されるため、固定したい場合は値として貼り付けます。 |
| NETWORKDAYS関数 | =NETWORKDAYS(A2,B2,[祝日]) |
土日・祝日を除いた営業日数 | 開始日と終了日が営業日なら、両方とも計算に含まれます。 |
| WORKDAY関数 | =WORKDAY(A2,30,[祝日]) |
N営業日後・N営業日前の日付 | 日数差分ではなく、営業日後の日付を求める関数です。 |
用途別の計算例 具体例
契約期間を両端入れで数える
4月1日から4月10日までを10日間として扱う場合は、通常の差分に +1 します。
=B2-A2+1
開始日から今日までの経過日数
進捗管理や継続日数の確認では、TODAY関数を使うと毎日自動で更新されます。
=TODAY()-A2
土日を除いた作業日数
納期や勤務日数の概算には、NETWORKDAYSで土日を除いた日数を出します。
=NETWORKDAYS(A2,B2)
Excel日数計算でよくあるミス
注意点計算結果が合わないときは、まず日付形式・含む/含まない・休日条件を確認します。
結果が日付表示になる
計算結果セルの表示形式が日付になっている可能性があります。表示形式を「標準」または「数値」に変更してください。
#VALUE! が出る
日付が文字列として扱われていることがあります。日付形式に直すか、DATEVALUE関数で変換します。
初日を含むかで1日ずれる
Excelの差分は通常、開始日を含みません。開始日と終了日を両方数える場合は +1 します。
祝日が自動で除外されない
NETWORKDAYSは土日を除外できますが、日本の祝日は別途リストを用意して第3引数に指定する必要があります。
古いMacファイルで日付がずれる
1900日付システムと1904日付システムの違いにより、約4年ずれる場合があります。
DATEDIFのMDを過信する
DATEDIFの一部単位は制限があります。厳密な総日数は直接相減、DAYS、NETWORKDAYSで確認しましょう。
FAQ
8問=B2-A2 です。開始日を含まない日数差分を返します。=B2-A2+1 とします。=B2-A2 または =DAYS(B2,A2) がシンプルです。年数・月数も分けたい場合はDATEDIFを使います。=TODAY()-A2 を使います。開始日も1日目として含めるなら =TODAY()-A2+1 です。=NETWORKDAYS(A2,B2) を使います。土曜・日曜を除いた営業日数を返します。=NETWORKDAYS(A2,B2,$E$2:$E$20) のように第3引数へ指定します。参考資料
最終更新:2026年4月24日本ページのExcel関数説明は、Microsoft公式サポートの関数仕様を確認したうえで、日数計算の実務用途向けに整理しています。