NETWORKDAYS関数の使い方|営業日数を計算する
NETWORKDAYS関数は、2つの日付の間にある営業日(土日を除いた平日)の日数を求めるExcelの関数です。祝日リストを指定して祝日も除外できます。プロジェクトの工数計算、納期までの稼働日数の算出、勤怠管理での出勤日数の把握など、ビジネスシーンで頻繁に使われます。
NETWORKDAYS関数の基本構文
=NETWORKDAYS(開始日, 終了日, [祝日])
引数の説明
| 引数 | 説明 | 必須/任意 |
|---|---|---|
| 開始日 | 期間の開始日 | 必須 |
| 終了日 | 期間の終了日 | 必須 |
| 祝日 | 除外する祝日の日付リスト(セル範囲) | 任意 |
基本的な動作
開始日と終了日の両方を含めた営業日数を返します。
=NETWORKDAYS("2026/04/01", "2026/04/30")
2026年4月1日から4月30日までの営業日数が返されます。土日を除いた日数です。
祝日を除外する場合
=NETWORKDAYS("2026/04/01", "2026/04/30", E2:E5)
E2:E5に祝日の日付が入力されている場合、土日に加えてそれらの日付も除外されます。
祝日リストの作成と管理
NETWORKDAYS関数を正しく使うには、祝日リストの準備が重要です。
祝日シートの作成例
別シートに「祝日」シートを作成し、年間の祝日を入力します。
| A列(日付) | B列(名称) |
|---|---|
| 2026/01/01 | 元日 |
| 2026/01/12 | 成人の日 |
| 2026/02/11 | 建国記念の日 |
| 2026/02/23 | 天皇誕生日 |
| 2026/03/20 | 春分の日 |
| 2026/04/29 | 昭和の日 |
| 2026/05/03 | 憲法記念日 |
| 2026/05/04 | みどりの日 |
| 2026/05/05 | こどもの日 |
| 2026/05/06 | 振替休日 |
名前の定義を活用する
祝日リストのセル範囲に「祝日」という名前を定義しておくと、数式が読みやすくなります。
=NETWORKDAYS(A2, B2, 祝日)
名前の定義は「数式」タブの「名前の管理」から設定できます。
会社独自の休業日
お盆休みや年末年始休暇など、会社独自の休業日も祝日リストに追加しておくと正確な営業日数が計算できます。
実践例1:納期までの営業日数を計算
受注日から納期までの営業日数を求め、工数管理に活用します。
サンプルデータ
| A列(受注日) | B列(納期) | C列(営業日数) |
|---|---|---|
| 2026/04/01 | 2026/04/15 | =NETWORKDAYS(A2,B2,祝日) |
| 2026/04/10 | 2026/05/08 | =NETWORKDAYS(A3,B3,祝日) |
| 2026/04/20 | 2026/05/29 | =NETWORKDAYS(A4,B4,祝日) |
残り営業日数の表示
今日から納期までの残り営業日数を計算します。
=NETWORKDAYS(TODAY(), B2, 祝日) - 1
TODAY()を含めると当日もカウントされるため、「残り」を計算する場合は1を引くか、翌日を開始日にします。
=NETWORKDAYS(TODAY()+1, B2, 祝日)
納期アラートの設定
残り営業日数に応じてアラートを表示する数式です。
=IF(NETWORKDAYS(TODAY(), B2, 祝日)-1 <= 0, "期限超過", IF(NETWORKDAYS(TODAY(), B2, 祝日)-1 <= 3, "残りわずか", "余裕あり"))
実践例2:プロジェクト工数の管理
プロジェクトのフェーズごとの稼働日数を計算し、進捗管理に使う例です。
工程表のサンプル
| フェーズ | 開始日 | 終了日 | 稼働日数 |
|---|---|---|---|
| 要件定義 | 2026/04/01 | 2026/04/17 | 13 |
| 設計 | 2026/04/20 | 2026/05/08 | 14 |
| 開発 | 2026/05/11 | 2026/06/19 | 30 |
| テスト | 2026/06/22 | 2026/07/10 | 15 |
合計稼働日数と人月の計算
=SUM(D2:D5) ' 合計稼働日数
人月に換算する場合は、1ヶ月の稼働日数(通常20日)で割ります。
=SUM(D2:D5) / 20 ' 人月換算
進捗率の計算
現在の進捗率を営業日ベースで算出します。
=NETWORKDAYS(A2, TODAY(), 祝日) / NETWORKDAYS(A2, B2, 祝日)
開始日から今日までの営業日数を、全体の営業日数で割って進捗率を求めます。結果をパーセンテージ表示にすれば進捗が一目で把握できます。
実践例3:月間の営業日数一覧を作成
年間の各月の営業日数をまとめた表を作成します。
数式
A2に年(例:2026)が入っている場合、各月の営業日数を計算します。
=NETWORKDAYS(DATE(A2, B2, 1), DATE(A2, B2+1, 0), 祝日)
B2に月(1~12)が入っている場合、その月の1日から末日までの営業日数を返します。
結果の例(2026年)
| 月 | 営業日数 |
|---|---|
| 1月 | 19 |
| 2月 | 19 |
| 3月 | 22 |
| 4月 | 21 |
| 5月 | 19 |
| 6月 | 22 |
| 7月 | 22 |
| 8月 | 21 |
| 9月 | 21 |
| 10月 | 22 |
| 11月 | 19 |
| 12月 | 21 |
この表を作成しておくと、人件費の月別按分や月間目標の設定に活用できます。
NETWORKDAYS.INTL関数との違い
NETWORKDAYS関数は土日を休日として固定ですが、NETWORKDAYS.INTL関数はカスタムの休日パターンを指定できます。
NETWORKDAYS.INTL関数の構文
=NETWORKDAYS.INTL(開始日, 終了日, [週末], [祝日])
週末パラメータの指定方法
数値で指定する方法と、7文字の文字列で指定する方法があります。
| 数値 | 週末 |
|---|---|
| 1 | 土曜・日曜(既定) |
| 2 | 日曜・月曜 |
| 11 | 日曜のみ |
| 12 | 月曜のみ |
文字列で指定する場合は、月曜から日曜の7文字で1が休日、0が稼働日です。
=NETWORKDAYS.INTL(A2, B2, "0000010", 祝日)
この例は土曜のみ休日(日曜は稼働)のパターンです。
使い分けの目安
| 状況 | 使う関数 |
|---|---|
| 一般的な企業(土日休み) | NETWORKDAYS |
| 小売・サービス業(水曜定休など) | NETWORKDAYS.INTL |
| シフト制(休日が不規則) | NETWORKDAYS.INTL + 文字列指定 |
実践例4:勤怠管理での出勤日数
従業員の月間出勤日数と出勤率を計算する例です。
所定労働日数の計算
=NETWORKDAYS(DATE(2026,4,1), DATE(2026,4,30), 祝日)
出勤率の計算
出勤日数をC2、所定労働日数をD2に入れた場合の出勤率です。
=C2 / D2
有給消化後の残り出勤日数
残りの営業日数から有給取得予定日数を引いた値です。
=NETWORKDAYS(TODAY()+1, DATE(2026,4,30), 祝日) - E2
E2に残りの有給取得予定日数が入っています。
よくあるエラーと対処法
#VALUE!エラー
日付として認識できない値を指定した場合に発生します。開始日・終了日が正しい日付形式であることを確認してください。
祝日が除外されない
祝日リストの値が文字列として入力されている場合、日付として認識されません。以下を確認してください。
- セルの値が日付型であること(文字列の「2026/01/01」ではなく日付の2026/01/01)
- 祝日リストの範囲指定が正しいこと
- 祝日リストに空白行が含まれていないこと
結果が負の値になる
開始日が終了日より後の場合、結果は負の値になります。NETWORKDAYS関数はDATEDIF関数と異なり、エラーにはならず負の営業日数を返します。
=NETWORKDAYS("2026/04/30", "2026/04/01") ' 結果:-22
期間の前後を気にせず絶対値が必要な場合はABS関数を使います。
=ABS(NETWORKDAYS(A2, B2, 祝日))
Google スプレッドシートでの互換性
NETWORKDAYS関数およびNETWORKDAYS.INTL関数はGoogle スプレッドシートでも同じ構文で利用可能です。祝日リストの指定方法も同一です。
まとめ
NETWORKDAYS関数は2つの日付の間の営業日数を計算する関数です。
- 土日を自動的に除外して営業日数を返す
- 祝日リストを指定すれば祝日も除外できる
- 開始日と終了日の両方がカウントに含まれる
- NETWORKDAYS.INTL関数でカスタムの休日パターンに対応できる
- 納期管理、工数計算、勤怠管理に幅広く活用できる
正確な営業日数の計算はビジネスの基本です。祝日リストを整備したうえでNETWORKDAYS関数を使いこなし、納期管理やプロジェクト管理の精度を高めましょう。