総務や経理の仕事では「土日と祝日を除いた稼働日数」を基準に期限を計算する場面が数多くあります。カレンダーを見ながら指折り数えることもできますが、対象件数が増えるほど手間もミスも増えていきます。この計算をワンステップで行ってくれるのがNETWORKDAYS関数です。ただし「祝日リストを用意したのに反映されない」「なぜか1日ズレる」といった、この関数ならではのつまずきが多いのも事実です。この記事では基本の使い方から、実務でありがちなエラーと対処法までまとめて解説します。

NETWORKDAYSの基本構文と「両端含む」仕様

NETWORKDAYSは「開始日」「終了日」、そして任意で「祝日リストのセル範囲」の3つの引数を取り、その間にある土日・祝日を除いた稼働日数(営業日数)を返します。

=NETWORKDAYS(開始日, 終了日, [祝日])

例:A1セルの契約開始日からB1セルの契約満了日までの稼働日数を、祝日リスト(D列)を除いて求める場合
=NETWORKDAYS(A1, B1, D1:D20)

特に押さえておきたいのが、開始日・終了日がどちらも平日であれば、その両方を稼働日数に含めて数える「両端含む」仕様だという点です。例えば月曜日を開始日、金曜日を終了日にすると、稼働日数は「5日」と計算されます。「開始日の翌日から数え始めたい」というケースでは、この仕様を知らないまま使うと結果が1日多くなるので注意が必要です。

実務でのよくある使用シーン

総務担当者であれば、契約書に定められた「営業日ベースでの提出期限」を起算日から逆算・順算するときにNETWORKDAYSがよく使われます。例えば「契約締結日から起算して5営業日以内に必要書類を提出する」といった条項がある場合、締結日と提出予定日の間の稼働日数をNETWORKDAYSで検算し、期限内に収まっているかをすぐに確認できます。経理担当者であれば、請求書の支払期日を「発行日から起算して30営業日後」のように計算する場面が典型例です。この場合はNETWORKDAYSそのものより、後述するWORKDAY関数と組み合わせて使うことが多くなります。いずれの場合も、自社カレンダー通りの祝日リストを事前に整備しておくことが正確な計算の前提になります。

NETWORKDAYSでよくあるエラー・トラブルと対処法

祝日リストを指定しているのに祝日が除外されない

見た目は同じ日付に見えるのに、計算結果に祝日が反映されないという相談が非常に多いトラブルです。原因のほとんどは、祝日リストのセルが「日付」ではなく「文字列」として入力されていることにあります。

例:祝日リストD1セルに「2026/1/1」と表示されているが、実際はメモ帳や他システムからコピーした際に文字列として貼り付けられている

対処法として、該当セルをクリックし、セル内の文字が左寄せになっていないか(=文字列扱いのサイン)を確認してください。文字列になっている場合は、セルを選択して「データ」タブの区切り位置機能を実行するか、DATE関数で日付を作り直して置き換えると、正しく日付データとして認識され祝日が除外されるようになります。

稼働日数が実際より多く計算されてしまう

祝日リストに国民の祝日は入れていても、会社独自の夏季休暇や年末年始休暇を追加し忘れているケースです。土日・祝日は除外されていても、これらの休業日は稼働日としてカウントされてしまいます。

例:祝日リストに元日・成人の日などは登録済みだが、12/29〜1/3の年末年始休暇や8月のお盆休みが未登録のため、その期間が営業日として計算されてしまう

対処法は、国民の祝日だけでなく、就業規則で定められた夏季休暇・年末年始休暇・創立記念日などの会社独自の休業日もすべて祝日リストに追加しておくことです。年が変わるたびに祝日リストを更新する運用ルールを決めておくと、この漏れを防げます。

土曜出勤・変則勤務の会社で数値が合わない

NETWORKDAYSは休日を「土曜・日曜」固定でしか判定できません。そのため、土曜日も出勤日として扱いたい会社や、火曜・水曜が定休日のシフト制の職場でこの関数を使うと、実態と合わない稼働日数が出てしまいます。

対処法として、このようなケースでは次の見出しで紹介するNETWORKDAYS.INTL関数に切り替えてください。休日として扱う曜日をパターン番号で指定できるため、土日以外の休日体系にも対応できます。

類似関数との使い分け

NETWORKDAYSと合わせて覚えておきたいのが、休日パターンを柔軟に指定できるNETWORKDAYS.INTLと、稼働日数から日付そのものを逆算するWORKDAYです。目的に応じて使い分けましょう。

NETWORKDAYS

  • 2つの日付の間の稼働日「数」を求める
  • 休日は土曜・日曜固定
  • 祝日リストは任意で追加指定

NETWORKDAYS.INTL

  • 2つの日付の間の稼働日「数」を求める
  • 休日の曜日パターンを番号で指定可能
  • 土曜のみ休業などの変則勤務に対応

WORKDAY

  • 起算日からN稼働日後の「日付」を求める
  • 支払期日・提出期限の算出に使用
  • NETWORKDAYSとは逆方向の計算

「稼働日数が何日あるか知りたい」ときはNETWORKDAYS(または土日以外の休日体系ならNETWORKDAYS.INTL)、「発行日から30営業日後の日付そのものを知りたい」ときはWORKDAYと覚えておくと、迷わず選べます。

初心者がつまずきやすいポイントとコツ

まとめ

NETWORKDAYSは、開始日・終了日の間にある土日・祝日を除いた稼働日数を1本の数式で求められる便利な関数です。ただし「祝日リストのセルが文字列になっていて反映されない」「会社独自の休業日を追加し忘れて稼働日数が実際より多く出る」「開始日・終了日を両方カウントする仕様を知らずに1日ズレる」という3つのつまずきが実務では特に多く見られます。土日以外の曜日を休日にしたい場合はNETWORKDAYS.INTL、稼働日数から期限日そのものを逆算したい場合はWORKDAYと、目的に応じて関数を使い分けることも忘れないでください。数式を一から組み立てるのが不安な方は、下のツールで日本語の空欄を埋めるだけで数式を作成できます。

よくある質問

祝日リストのセルに日付を入れているのに、祝日が稼働日数から除外されません。なぜですか?
祝日リストのセルが「日付」ではなく「文字列」として入力されている場合によく起こるトラブルです。見た目は「2026/1/1」のように普通の日付に見えても、セルが左寄せで表示されている(文字列扱いのサイン)場合、NETWORKDAYSはその日を祝日として認識できません。該当セルを選択して表示形式や配置を確認し、必要であればDATE関数で入力し直すか、区切り位置機能を使って日付データに変換してください。
開始日と終了日、どちらも稼働日数としてカウントされますか?
はい。NETWORKDAYSは開始日・終了日がどちらも平日であれば、両方の日付を稼働日数に含めて数える「両端含む」仕様です。例えば月曜日を開始日、金曜日を終了日にすると、稼働日数は5日と計算されます。「起算日の翌日から数える」といった運用にしたい場合は、結果から1を引くなど別途の調整が必要です。
土曜日は出勤で日曜日だけ休みのような会社の場合、NETWORKDAYSは使えますか?
NETWORKDAYS単体では休日を「土日固定」でしか指定できないため、このケースにはそのまま使えません。土日以外の曜日を休日にしたい場合や、土曜のみ出勤のような変則的な勤務体系の場合は、休日パターンを番号で指定できるNETWORKDAYS.INTL関数を使うと、曜日ごとの休日設定を柔軟に行えます。

関連記事

→ NETWORKDAYSの数式を作ってみる ← 記事一覧に戻る