【Excel】期限まであと何日かを計算する方法|TODAYと営業日の数え方

【Excel】期限まであと何日かを計算する方法|TODAYと営業日の数え方
🛡️ 超解決

期限までの残り日数は、期限日からTODAY()を引くと求められます。期限日をA2に入れた場合の基本式は=A2-TODAY()です。まず「今日を含めるか」「土日祝日を除くか」を決めると、1日ずれる原因を避けられます。

この記事では、暦上の残日数から始め、未入力の行、期限超過、営業日での計算へ進みます。例の日付は計算方法を比べるための固定日で、TODAYを使う実際の結果は再計算した日に応じて変わります。

ADVERTISEMENT

期限日を入力し、残日数の列を数値表示にする

A列を期限日、B列を残日数とし、A2に日付を入力します。B2へ=A2-TODAY()を入れて確定してください。B2が1900年の日付のように表示されたら、B列の表示形式を「標準」または小数点以下0桁の「数値」へ変更します。

日付はExcel内部では連続する数値として扱われるため、同じ日なら差は0、翌日なら1です。A2を2026/9/25、基準日を2026/9/22として確認するなら、一時的に=A2-DATE(2026,9,22)を使うと結果は3になります。試験が済んだらDATEの部分をTODAY()へ戻します。

期限日に時刻も含む場合、差が3.5などの小数になることがあります。日付だけで管理する表なら、元の期限データから時刻部分を除くか、=INT(A2)-TODAY()として日付部分を使います。時刻まで厳密に締め切る運用では、日単位の式だけで判定しないでください。

※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

今日を含める計算と、日付の差を区別する

9月22日から9月25日までの日付差は3日です。「22日・23日・24日・25日の4日間を使える」と数えるなら、今日と期限日の両方を含めるため1を足します。

管理したい内容 A2を期限日とする式 期限当日
期限までの日付差 =A2-TODAY() 0
今日も含む日数 =A2-TODAY()+1 1
超過しても0未満にしない =MAX(0,A2-TODAY()) 0

残日数0を「作業できる日がない」と解釈すると、期限当日を誤って期限超過にできます。「当日締切」と「期限超過」の判定は、残日数の見た目だけでなく、期限日と今日を直接比較して分ける方が明確です。

同じ「あと3日」でも、納期が朝9時か終業時刻かで使える時間は違います。日付だけの一覧で管理する場合は、時刻付きの厳密な締切を備考に残すなど、担当者が見落とさない場所に記します。TODAYの差分は24時間単位の残り時間を測るストップウォッチではありません。

9月22日から25日までの3つの日付間隔と、今日を含む4つの日付を並べた比較
同じ期限でも、日付の差は3日、今日と期限日を含む日数は4日です。

未入力の行と期限超過を扱う

期限日の空欄をそのまま引き算すると、大きなマイナス値になることがあります。期限未定の行を空欄にしたいときは、=IF(A2="","",A2-TODAY())とします。これは未入力を隠す式ではなく、まだ期限を設定していない行を計算対象から外す式です。

数値の残日数とは別にC列を状態欄にするなら、次のように書けます。

=IF(A2="","期限未定",IF(INT(A2)<TODAY(),"期限超過",IF(INT(A2)=TODAY(),"本日期限","対応中")))

この状態式もINTで日付部分を比較します。同日の昼12時などを含む場合でも「本日期限」となりますが、12時を過ぎたかどうかまでは判定しません。

数値と状態を別列にすると、B列を小さい順に並べて優先順位を確認し、C列をフィルターして期限未定だけを探せます。B列を「あと3日」という文字列に変えると数値として並べ替えにくくなるため、集計用の列には数値を残してください。

MAXで負数を0にする場合は、昨日が期限でも1か月前が期限でも0になります。遅延の長さが必要なら負数を残すか、=MAX(0,TODAY()-A2)を別の超過日数欄に設けます。こちらも空欄の行は先にIFで分岐します。

営業日を数えるときは休日表を用意する

土日を除く日数にはNETWORKDAYSを使います。=NETWORKDAYS(TODAY(),A2,$H$2:$H$30)なら、今日から期限日までのうち土日とH2:H30に入力した休日を除きます。開始日と終了日が営業日なら、その日も数えます。日本の祝日を自動で調べる機能ではないため、会社の休業日も含め休日表を準備します。

今日の作業時間はもう残っていないなど、明日からの営業日を求める場合は、期限当日以前の分岐を加えます。

=IF(A2="","",IF(INT(A2)<=TODAY(),0,NETWORKDAYS(TODAY()+1,INT(A2),$H$2:$H$30)))

INTで時刻部分を除くため、期限が当日の0時・12時・23時でもこの式は0です。NETWORKDAYSは土日を休日とするので、火曜・水曜定休などの職場はNETWORKDAYS.INTLで休日パターンを指定します。納期そのものが休業日に当たった場合に前営業日へ繰り上げるかは、残日数の計算とは別の業務ルールです。

計算結果が不自然なときの確認順

まずA2が本物の日付かを=ISNUMBER(A2)で確認します。TRUEでも単なる数値の可能性はあるため、数式バーと日付表示で年月日を照合します。FALSEなら、CSVから取り込んだ文字列や先頭のアポストロフィなどを調べます。「2026/9/25」と見えるだけで日付として扱われるとは限りません。

次に基準日を確認します。TODAYは再計算時の現在日付を返す関数で、常に秒単位で動く時計ではありません。日付をまたいで開き続けている場合や計算方法が手動の場合は、必要に応じて再計算します。計算方法や日付が更新されない問題は、残日数の数式を作り直す前に切り分けてください。

最後に表示形式と端数を見ます。日付表示、今日を含める1の有無、期限の時刻部分、休日表の不足は別々の原因です。一度にすべてを変えず、基準日を固定して同じ期限が期待どおりの日数になるか確認すると判定しやすくなります。

運用開始前に境界の日付を試す

確認用の行として、昨日、今日、明日、次の月末、未入力を用意します。昨日が負数または期限超過、今日が0または本日期限、明日が1になるかを見ます。「今日を含む日数」の設計なら当日は1になるので、表の見出しもそれに合わせます。

営業日版は、金曜日から翌月曜日までを試すと数え方を確認できます。両日を含み、途中に休日指定がなければ営業日は2日です。月曜日を休日表に追加すると1日になるため、祝日表が式の範囲に入っているかも確認できます。

共有相手には「残日数は今日を除く暦日」「営業日は今日を含む」など、採用した基準を列見出しか近くの注記に残します。完了済みの仕事は状態列で除外し、終わった案件がいつまでも期限超過として並ばないようにしてください。

新しい行へ式をコピーしたら、その行の期限を参照しているか確認します。基準日をE1にまとめる場合はE1だけを絶対参照にし、期限日のA2まで固定しないようにします。全行の残日数が同じになったら、日付よりも先に式の参照先を見直すと原因を絞れます。

残日数と記録用の日付を使い分ける

毎日の優先順位を変える表にはTODAYが適しますが、提出時点の残日数を記録したい帳票では基準日を固定する必要があります。E1に基準日を入力して=A2-$E$1とすると、後日開いてもその日を基準に比較できます。

関数の仕様はMicrosoftのTODAYとNETWORKDAYSで確認できます。式を短くすることより、何日を数え、期限当日にどう扱うかが利用者へ伝わる表を目指してください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】