スプレッドシートの日数計算|日付差・今日まで・営業日を関数で求める方法
Googleスプレッドシートで日数を求めるなら、まず「2つの日付の差」「今日までの経過日数」「指定日から何日後」「土日・祝日を除く営業日」のどれを計算したいかを分けます。この記事では、セル配置とそのまま使える関数を例付きで整理します。
目次
まず結論:日数計算は目的別に関数を選ぶ
スプレッドシートの日数計算で迷ったら、開始日をA2、終了日をB2、日数をN2に入力する形から始めると整理しやすくなります。単純な日付差は引き算、今日を基準にする場合はTODAY、土日や祝日を除外する場合はNETWORKDAYSを使います。
| 求めたいもの | そのまま使える式 | 数え方・注意点 |
|---|---|---|
| 2つの日付の差 | =B2-A2 |
開始日を含めない差分。開始日も数えるなら最後に+1 |
| DAYS関数で日付差 | =DAYS(B2,A2) |
終了日、開始日の順に指定する |
| 開始日から今日まで | =TODAY()-A2 |
シートの再計算時点で今日の日付に更新される |
| 指定日からN日後 | =A2+N2 |
日付セルの表示形式を日付にする |
| 土日・祝日を除く日数 | =NETWORKDAYS(A2,B2,$F$2:$F$20) |
F2:F20に祝日を日付で入力する |
最初に決める3つのルール
- 開始日を1日目として含めるか、それとも経過日数として差分だけを見るか。
- 土曜・日曜だけを除くか、日本の祝日や会社休日も除くか。
- 結果を「9」のような日数で出すか、「2026/9/1」のような日付で出すか。
日付を入力する前の準備:セルを日付として扱う
式が正しいのに計算できないときは、日付が文字列として入力されているケースが多くあります。A2とB2を選択し、表示形式を「表示形式」→「数字」→「日付」に変更してから式を入力してください。
「2026年8月1日」のような日本語表記をコピーした場合や、先頭にアポストロフィが付いている場合は、日付ではなく文字列になることがあります。入力値が曖昧なら、=DATE(2026,8,1) のようにDATE関数で日付を作ると、地域設定に左右されにくくなります。
Google公式のGoogleスプレッドシート関数一覧でも、日付・時刻関数の引数や戻り値を確認できます。シートを他の人と共有する場合は、入力欄と祝日欄の場所も最初に決めておくと式のコピーが簡単です。
2つの日付間の日数を計算する:日付差と含む・含まない
開始日をA2、終了日をB2に入力したとき、最も簡単な日数計算は=B2-A2です。たとえばA2が2026/8/1、B2が2026/8/10なら、結果は9になります。これは8月1日から8月10日までの「経過した日数」で、開始日を1日目として数える計算ではありません。
同じ計算を関数で書くなら=DAYS(B2,A2)です。DAYSは終了日を先、開始日を後に指定する点がポイントです。日付を逆に入力するとマイナスになるため、順番を問わず差だけ欲しい場合は=ABS(B2-A2)を使います。
開始日・終了日を含めて数える場合
旅行日数、入院日数、イベントの開催日数のように両端を数える場合は、=B2-A2+1とします。8月1日から8月10日までなら10日です。開始日だけを含める、終了日だけを含めるなどのルールがある場合は、現場の定義に合わせて+1の位置を決めてください。
「何日から何日まで」を画面で確認したい場合は、当サイトの日付計算も利用できます。含む・含まないを切り替えながら、シートに入れる式と結果を照合できます。
今日までの経過日数を計算する:TODAY関数
開始日から今日までの日数を求めるなら、A2を開始日として=TODAY()-A2と入力します。毎日同じ式を使い回せるため、契約開始からの経過日数、プロジェクト開始からの日数、記念日からの経過日数などに向いています。
開始日を1日目として表示したい場合は=TODAY()-A2+1です。ただし、今日が開始日より前ならマイナスになります。未来の日付を入力する可能性がある場合は、次のように条件分岐を入れると表示を制御できます。
未来の日付を空欄にする例
=IF(A2>TODAY(),"",TODAY()-A2)
未来の日付には結果を出さず、開始日以前だけを日数として表示します。開始日を含める場合は最後の式に+1を加えます。
TODAY関数は入力した瞬間の固定日ではなく、シートの再計算時点の今日を返します。作成日を固定して記録したい管理表では、計算結果をコピーして「値のみ貼り付け」にするなど、更新方法を別に決めてください。経過日数のルール自体を確認したい場合は経過日数計算も参考になります。
指定日から何日後・何日前を求める:日付に数字を足す
指定日からN日後の日付は、日付セルに日数を足すだけです。A2に基準日、N2に日数を入れるなら=A2+N2、N日前なら=A2-N2になります。結果セルの表示形式が「自動」や「数字」になっている場合は、日付形式に変更してください。
固定の日付から計算する場合は=DATE(2026,8,1)+30のように書けます。営業日ベースで何日後を求める式は別の考え方になるため、次の営業日セクションを確認してください。
日付を入力して何日後・何日前をすぐ確認したい場合は、当サイトの何日後・何日前計算を使えます。スプレッドシートは一覧表や管理表の自動更新、サイトのツールは単発確認というように使い分けると便利です。
土日・祝日を除く営業日を計算する:NETWORKDAYS
通常のカレンダー日数ではなく、平日だけを数えるなら=NETWORKDAYS(A2,B2)を使います。開始日と終了日を含めた営業日数として計算され、土曜・日曜が除外されます。
祝日も除外する場合は、別の列に祝日を日付で入力します。たとえばF2:F20に祝日一覧を作ったら、式は=NETWORKDAYS(A2,B2,$F$2:$F$20)です。範囲を絶対参照にしておくと、式を下の行へコピーしても祝日範囲がずれません。
週末が土日ではない場合
土日以外を休日にする勤務形態ではNETWORKDAYS.INTLを使い、週末パターンを指定します。会社独自の休日がある場合は、週末指定と祝日範囲の両方を分けて管理してください。
営業日後の日付を求める場合
「5営業日後の日付」のように、日数ではなく日付を求めるならWORKDAY(A2,5,$F$2:$F$20)です。営業日前・営業日後の起算日や休日の考え方は、営業日前・営業日後の計算方法で具体例を確認できます。営業日数の式を作ること自体が目的なら、専用のスプレッドシート営業日数計算ツールで式の形を確認できます。暦日と営業日を混同しないようにしてください。
スプレッドシートの日数計算が合わないときの確認点
| 症状 | 確認すること | 対処例 |
|---|---|---|
| 結果がエラーになる | 日付が文字列になっていないか | 表示形式を日付にし、必要ならDATE関数で入力する |
| 数字が日付として表示される | 結果セルの表示形式 | 日数の結果は「自動」または数字、日付の結果は「日付」にする |
| 1日ずれる | 開始日・終了日を含めるルール | 経過日数なら差分、両端を数えるなら+1 |
| 営業日数が多い | 祝日範囲を指定しているか | 祝日を日付で一覧化し、NETWORKDAYSの第3引数に固定範囲を入れる |
| 日ごとに結果が変わる | TODAY関数を使っているか | 固定値が必要なら計算結果を値として保存する |
Excelの式を移植する場合は、関数名が同じでも区切り文字や日付の入力形式がシートの地域設定に影響されることがあります。Excelでの式や「初日を含む」ルールを確認したい場合はExcel日数計算の解説も併せて確認してください。
そのまま使える日数計算のサンプル
次のように入力欄を決めておくと、行を増やしても式をコピーできます。管理表では、結果列の表示形式を先に設定しておくと入力ミスを見つけやすくなります。
| 用途 | セル配置 | 式 |
|---|---|---|
| 開始日から終了日までの差 | A2:開始日 / B2:終了日 | =B2-A2 |
| 開始日を含む日数 | A2:開始日 / B2:終了日 | =B2-A2+1 |
| 開始日から今日まで | A2:開始日 | =TODAY()-A2 |
| 指定日から30日後 | A2:基準日 | =A2+30 |
| 祝日を除く営業日数 | A2:開始日 / B2:終了日 / F2:F20:祝日 | =NETWORKDAYS(A2,B2,$F$2:$F$20) |
FAQ:スプレッドシートの日数計算でよくある質問
=B2-A2です。開始日も1日として数える場合は=B2-A2+1にします。=TODAY()-A2で開始日から今日までの経過日数を求められます。毎日更新されるため、契約書などの固定記録には値として保存する運用も検討してください。=NETWORKDAYS(A2,B2,$F$2:$F$20)を使い、F2:F20に祝日の日付を入力します。会社独自の休日も除外するなら、同じ範囲に追加して管理します。=B2-A2や=DAYS(B2,A2)が分かりやすく、年・月・日の単位を分けたい場合にDATEDIFを使います。引数と開始・終了日の順番を確認してから利用してください。まとめ:日付差は引き算、今日までならTODAY、営業日ならNETWORKDAYS
スプレッドシートの日数計算は、入力する日付と数え方を揃えると難しくありません。日付差は=B2-A2、開始日を含めるなら+1、今日までなら=TODAY()-A2、営業日ならNETWORKDAYSを使います。
式を作る前に、開始日・終了日を含めるか、祝日を除外するか、結果を固定するかを確認してください。単発の確認には日付計算、何日後の日付には何日後・何日前計算、営業日公式の作成にはスプレッドシート営業日数計算も利用できます。
参考資料・公式ドキュメント
- Google「Googleスプレッドシート関数一覧」
- Google「DATEDIF関数」
- Google「NETWORKDAYS関数」
この記事を書いた人
公開日:2026年8月2日