Excelでスケジュール管理やプロジェクト管理をしていると、
「開始日から終了日までの日数を自動で計算したい!」
「何日経過しているかを一覧表で見えるようにしたい!」
そんなニーズはとても多いですよね。
この記事では、Excelで日数をカウントする基本的な方法から、土日を除いた営業日計算、日付が未入力の場合の処理方法までをわかりやすく解説します!
目次
✅単純な日数差を求める(終了日 − 開始日)
最も基本的な方法は、2つの日付を引き算するだけです。
=終了日 - 開始日
使用例
=B2 - A2
| A列(開始日) | B列(終了日) | C列(日数) |
|---|---|---|
| 2025/03/01 | 2025/03/10 | =B2 - A2 → 9 |
✅ シンプルで、日数の経過を正確に表示できます。
📌 同じ日を0日ではなく1日としてカウントしたい場合は「+1」してください:
=B2 - A2 + 1
【Excel】日付の引き算ができない時の対処方法【#VALUE!や計算できない原因を解消】
✅DATEDIF関数を使って日数を求める
DATEDIF関数を使えば、年・月・日ごとの差を正確に求められます。
=DATEDIF(開始日, 終了日, "D")
使用例
=DATEDIF(A2, B2, "D")
"D"は日数(Days)の意味開始日が終了日より後の場合は
#NUM!エラー になるので注意
【Excel】「何日後」の日付を関数で計算する方法【納期・リマインド・スケジュール管理に◎】
✅土日・祝日を除いた営業日数を求める(NETWORKDAYS関数)
土日を除いて、実働日(営業日)だけをカウントしたい場合は NETWORKDAYS 関数を使います。
=NETWORKDAYS(開始日, 終了日, [祝日範囲])
使用例
=NETWORKDAYS(A2, B2)
| A列(開始日) | B列(終了日) | C列(営業日数) |
|---|---|---|
| 2025/03/01 | 2025/03/10 | =NETWORKDAYS(A2,B2) → 6日 |
※ 土日が除外されて、自動的に平日のみがカウントされます
※ 祝日も除外したい場合は、祝日をセル範囲にまとめて、以下のように指定します:
=NETWORKDAYS(A2, B2, F2:F10)
✅日付が未入力のときは空欄にする(IF関数+TODAY関数)
終了日がまだ未入力で、「今日までの日数」を出したい場合は:
=IF(B2="", TODAY() - A2, B2 - A2)
✅ 終了日があれば差分を、なければ今日までの経過日数を自動でカウント!
📝 表示形式が変になったときの対処法
日数を表示するセルが「日付」形式になっていると、変な日付(1900/01/09など)が表示されてしまいます。
セルを右クリック →「セルの書式設定」
「表示形式」→「標準」または「数値」を選択
OKをクリック
よくあるエラーと対策
| エラー・症状 | 原因 | 解決策 |
|---|---|---|
#VALUE! エラー | 日付が文字列・未入力 | 入力形式を「日付」に修正 |
#NUM! エラー | DATEDIFで開始日 > 終了日 | 日付の順序を確認・IFで制御 |
| 1900/1/0 などの表示 | 結果セルの表示形式が「日付」 | 「標準」または「数値」に変更 |
まとめ:日数カウントのパターンと数式一覧
| やりたいこと | 数式例 | 使用関数 |
|---|---|---|
| 通常の日数を計算 | =B2 - A2 | ー |
| 同じ日を「1日」としてカウント | =B2 - A2 + 1 | ー |
| DATEDIFで日数計算 | =DATEDIF(A2, B2, "D") | DATEDIF |
| 営業日(平日)のみカウント | =NETWORKDAYS(A2, B2) | NETWORKDAYS |
| 営業日+祝日除外 | =NETWORKDAYS(A2, B2, F2:F10) | NETWORKDAYS |
| 終了日未入力なら今日までのカウント | =IF(B2="", TODAY()-A2, B2-A2) | IF + TODAY |
🎯 活用シーン
業務開始からの経過日数を表示
タスクの所要日数を自動計算
納期までの残り日数管理
プロジェクト進行のステータス判断
契約日・更新日・申請日などの管理