「締切まであと何日?」
「プロジェクトの残り日数を自動で出したい!」
「イベントまでのカウントダウンを管理したい!」
仕事や学校でExcelを使っていると、残り日数をすぐに計算したい場面がよくありますよね。手動でカレンダーを数えるのは面倒だし、間違いも起こりやすいです。
実は、Excelなら日付同士の引き算をするだけで簡単に残り日数を出すことができます。さらに、条件付き書式を使えば「残り3日で赤色表示」といった自動アラート機能も作れます。
この記事では、Excelで残り日数を計算する基本方法から、締切管理に役立つ応用テクニック、よくあるトラブルの解決方法まで、初心者でもすぐに実践できる内容をわかりやすく解説します。
Excelの日付計算の基本知識

日付のシリアル値について
Excelでは、日付をシリアル値という連続した数字で管理しています。これにより、日付同士の計算が簡単にできるようになっています。
シリアル値の仕組み
基準日
- 1900年1月1日 = 1
- 1900年1月2日 = 2
- 2025年7月17日 = 45859
計算の原理
2025年7月31日(45873) - 2025年7月17日(45859) = 14日
日付入力の基本
推奨する入力形式
2025/7/31 # スラッシュ区切り
2025-7-31 # ハイフン区切り
令和7年7月31日 # 和暦での入力
避けるべき入力形式
2025.7.31 # ドット区切り(数値として認識される場合)
7/31 # 年が不明(現在年として処理)
基本的な残り日数計算
シンプルな引き算による計算
基本的な数式
構文
=締切日 - 開始日
具体例
=B2 - A2 # B2が締切日、A2が開始日
実用的な例
締切管理表
A列(タスク) | B列(今日) | C列(締切日) | D列(残り日数) |
---|---|---|---|
資料作成 | 2025/7/17 | 2025/7/31 | =C2-B2 |
会議準備 | 2025/7/17 | 2025/7/20 | =C3-B3 |
報告書提出 | 2025/7/17 | 2025/8/5 | =C4-B4 |
結果
A列(タスク) | B列(今日) | C列(締切日) | D列(残り日数) |
---|---|---|---|
資料作成 | 2025/7/17 | 2025/7/31 | 14 |
会議準備 | 2025/7/17 | 2025/7/20 | 3 |
報告書提出 | 2025/7/17 | 2025/8/5 | 19 |
TODAY関数を使った自動更新
TODAY関数の基本
構文
=TODAY()
特徴
- ファイルを開くたびに今日の日付に更新
- 時間情報は含まない(日付のみ)
- 自動計算がONの場合は定期的に更新
実用的な活用例
自動更新される残り日数
=C2 - TODAY()
応用例:プロジェクト管理表
A列(プロジェクト) | B列(締切日) | C列(残り日数) | D列(ステータス) |
---|---|---|---|
システム開発 | 2025/8/31 | =B2-TODAY() | 進行中 |
資料作成 | 2025/7/25 | =B3-TODAY() | 進行中 |
会議準備 | 2025/7/18 | =B4-TODAY() | 進行中 |
マイナス日数の対処法
問題点
締切を過ぎた場合、マイナスの日数が表示されてしまいます。
例
今日:2025/7/17
締切:2025/7/15
結果:-2日
MAX関数による解決
基本形
=MAX(0, 締切日 - TODAY())
応用例
=MAX(0, B2 - TODAY())
結果
- 締切前:正の数値(例:3日)
- 締切後:0日(マイナスにならない)
より高度な対処法
条件分岐での表示制御
=IF(B2-TODAY()<0, "期限切れ", B2-TODAY())
詳細な状況表示
=IF(B2-TODAY()<0, "期限切れ", IF(B2-TODAY()=0, "本日期限", B2-TODAY()&"日"))
応用テクニック
営業日での計算
NETWORKDAYS関数の活用
基本構文
=NETWORKDAYS(開始日, 終了日, [祝日])
実用例
=NETWORKDAYS(TODAY(), B2) # 営業日ベースの残り日数
祝日を考慮した計算
祝日リストの作成
F1: 2025/7/21 # 海の日
F2: 2025/8/11 # 山の日
F3: 2025/9/16 # 敬老の日
F4: 2025/9/23 # 秋分の日
祝日を考慮した営業日計算
=NETWORKDAYS(TODAY(), B2, F1:F10)
週単位・月単位での計算
週数での表示
基本的な週数計算
=ROUNDUP((B2-TODAY())/7, 0)
より正確な週数計算
=INT((B2-TODAY())/7)&"週"&MOD(B2-TODAY(),7)&"日"
DATEDIF関数の活用
年・月・日の詳細表示
=DATEDIF(TODAY(), B2, "Y")&"年"&DATEDIF(TODAY(), B2, "YM")&"月"&DATEDIF(TODAY(), B2, "MD")&"日"
月単位での計算
=DATEDIF(TODAY(), B2, "M") # 残り月数
年単位での計算
=DATEDIF(TODAY(), B2, "Y") # 残り年数
条件付き書式での視覚化
残り日数に応じた色分け
設定手順
- 残り日数のセル範囲を選択
- 「ホーム」タブ →「条件付き書式」→「新しいルール」
- 「数式を使用して書式設定するセルを決定」を選択
- 条件を設定
具体的な条件例
1週間以内(7日以下)で赤色
=D2<=7
2週間以内(14日以下)で黄色
=AND(D2<=14, D2>7)
1か月以内(30日以下)で青色
=AND(D2<=30, D2>14)
段階的な警告システム
3段階の警告レベル
緊急(赤):残り3日以下
注意(黄):残り7日以下
正常(緑):残り7日超
設定方法
- 「条件付き書式」→「アイコンセット」
- 「3つの矢印」を選択
- 値とアイコンを設定
実用的な活用事例

プロジェクト管理表
基本構成
列構成
列 | 項目 | 数式例 |
---|---|---|
A | タスク名 | 手入力 |
B | 開始日 | 手入力 |
C | 締切日 | 手入力 |
D | 残り日数 | =C2-TODAY() |
E | 進捗率 | 手入力 |
F | ステータス | 条件付き書式 |
高度な機能
自動ステータス更新
=IF(D2<0, "期限切れ", IF(D2<=3, "緊急", IF(D2<=7, "注意", "正常")))
進捗に応じた評価
=IF(E2=100%, "完了", IF(D2<0, "遅延", "進行中"))
契約・保証管理
契約期限管理
基本テーブル
A列:契約名
B列:契約開始日
C列:契約期間(月)
D列:契約終了日 =EDATE(B2,C2)
E列:残り日数 =D2-TODAY()
F列:更新要否 =IF(E2<=90,"要更新","継続")
保証期間管理
家電・機器の保証管理
A列:商品名
B列:購入日
C列:保証期間(年)
D列:保証期限 =EDATE(B2,C2*12)
E列:残り日数 =D2-TODAY()
F列:アラート =IF(E2<=30,"期限間近","有効")
イベント・締切管理
学校行事管理
年間行事予定
A列:行事名
B列:開催日
C列:残り日数 =B2-TODAY()
D列:準備期間 =IF(C2<=30,"準備開始","準備期間前")
E列:担当者 手入力
資格試験管理
試験日カウントダウン
A列:試験名
B列:試験日
C列:残り日数 =B2-TODAY()
D列:学習日数 =MAX(0,C2-7)
E列:1日当たり学習時間 =IF(D2>0,必要学習時間/D2,"集中学習")
よくある問題と解決方法
日付認識エラー
文字列として認識される場合
問題の確認方法
- セルが左寄せで表示
- 数式で計算できない
- 日付として機能しない
解決方法
=DATEVALUE(A2) # 文字列を日付に変換
一括変換方法
- 空白セルに1を入力
- コピー(Ctrl+C)
- 日付範囲を選択
- 「形式を選択して貼り付け」→「乗算」
計算結果の表示問題
数値が日付形式で表示される
問題
期待値:14(日数)
実際:1900/1/14(日付)
解決方法
- セルを選択
- Ctrl+1で「セルの書式設定」
- 「数値」→「数値」を選択
小数点が表示される
原因 時間情報を含む日付での計算
解決方法
=INT(B2-A2) # 整数部分のみ取得
更新タイミングの問題
TODAY関数が更新されない
原因
- 自動計算がOFFになっている
- ファイルが手動計算モードに設定
解決方法
- 「数式」タブ→「計算方法」→「自動」
- F9キーで手動再計算
- Ctrl+Shift+F9で完全再計算
高度な応用テクニック
VBAを使った自動化
期限切れタスクの自動抽出
Sub 期限切れタスク抽出()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To lastRow
If ws.Cells(i, "D").Value < 0 Then
ws.Rows(i).Interior.Color = RGB(255, 0, 0)
End If
Next i
End Sub
定期的な残り日数更新
Sub 残り日数更新()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
For i = 2 To lastRow
ws.Cells(i, "D").Formula = "=C" & i & "-TODAY()"
Next i
MsgBox "残り日数を更新しました"
End Sub
条件付き書式の応用
段階的な色分け
複数条件の設定
条件1:=D2<=0 → 赤色(期限切れ)
条件2:=D2<=3 → オレンジ色(緊急)
条件3:=D2<=7 → 黄色(注意)
条件4:=D2<=14 → 青色(準備期間)
アイコンセットの活用
信号機アイコン
赤:残り日数≤3
黄:残り日数≤7
緑:残り日数>7
ピボットテーブルでの分析
期限別の集計
データ準備
A列:部署
B列:担当者
C列:タスク
D列:締切日
E列:残り日数グループ =IF(D2-TODAY()<=3,"緊急",IF(D2-TODAY()<=7,"注意","正常"))
ピボットテーブル設定
行:部署、担当者
列:残り日数グループ
値:タスク(カウント)
トラブルシューティング

計算が合わない場合
時間部分の影響
問題
開始:2025/7/17 14:30
終了:2025/7/18 9:00
結果:0.77日(期待値:1日)
解決方法
=INT(B2)-INT(A2) # 日付部分のみで計算
異なる時間帯での計算
問題 海外との時差による計算ずれ
解決方法
=NETWORKDAYS(A2,B2) # 営業日ベースの計算
パフォーマンス問題
大量データでの処理
問題
- 計算が重い
- ファイルが重くなる
- 応答が遅い
解決方法
=IF(ROW()<=100, 計算式, "") # 必要な範囲のみ計算
値の固定化
- 計算結果を選択
- コピー(Ctrl+C)
- 「形式を選択して貼り付け」→「値」
まとめ
Excelでの残り日数計算は、基本的には日付同士の引き算という シンプルな仕組みですが、様々な応用が可能です。
重要なポイント
基本計算
- 残り日数 = 締切日 – 今日
- TODAY関数で自動更新
- MAX関数でマイナス回避
応用技術
- 条件付き書式での視覚化
- NETWORKDAYS関数で営業日計算
- DATEDIF関数で期間の詳細表示
実用的な活用
- プロジェクト管理での進捗監視
- 契約・保証期間の管理
- イベント・締切の管理
活用のベストプラクティス
設計時の考慮点
- 自動更新の設定:TODAY関数の活用
- エラー対策:マイナス日数の処理
- 視覚化:条件付き書式での色分け
- 保守性:わかりやすい数式と構成
運用時の注意点
- データ品質:正確な日付入力
- 定期確認:計算結果の妥当性チェック
- バックアップ:重要なデータの保護
- 共有設定:チームでの利用時の統一
コメント