土日を休日とした場合に営業日数をカウントするにはNETWORKDAYS関数を使います。
詳しくはこちらの記事で紹介しています。
しかし、この方法には1つ問題があります。
それは土日が休日であるという前提で考えているということです。
でも、土日は休みではなくて、月曜日が休みだという場合もありますよね。
「土日が休みじゃないと営業日数を数えられないのか??」ってなりますね。
それを解決するのがこの記事で紹介する方法です。
エクセルで曜日指定休日を含めた稼働日計算の方法
任意の曜日を休日として扱うためにはNETWORKDAYS.INTL関数を使います。
まずはNETWORKDAYS.INTL関数の定義を確認しておきます。
NETWORKDAYS.INTL(開始日, 終了日, [週末], [祭日])
- 開始日:営業日数を数える対象期間の開始日を指定します(必ず設定が必要)
- 終了日:営業日数を数える対象期間の終了日を指定します(必ず設定が必要)
- 週末:毎週の休日として扱う曜日を指定する数値※1(設定は任意)
- 祭日:営業日数のカウントから除外する日を指定します(設定は任意)
<返値>
開始日から終了日までのうち、週末と祭日で指定された休日を除いた日数
第3引数の値 | 休日として扱われる曜日 | 第3引数の値 | 休日として扱われる曜日 |
---|---|---|---|
1 | 土曜日と日曜日 | 11 | 日曜日のみ |
2 | 日曜日と月曜日 | 12 | 月曜日のみ |
3 | 月曜日と火曜日 | 13 | 火曜日のみ |
4 | 火曜日と水曜日 | 14 | 水曜日のみ |
5 | 水曜日と木曜日 | 15 | 木曜日のみ |
6 | 木曜日と金曜日 | 16 | 金曜日のみ |
7 | 金曜日と土曜日 | 17 | 土曜日のみ |
ちなみにNETWORKDAYS.INTL関数の第3引数を1にすればNETWORKDAYS関数と全く同じ動きになります。
NETWORKDAYS.INTL関数の使用が適する場面
NETWORKDAYS.INTL関数とNETWORKDAYS関数との違いは、「週末」設定の有無にあります。
定休日を土日に固定するのがNETWORKDAYS関数、任意の曜日を設定できるのがNETWORKDAYS.INTL関数です。
よって、その違いがNETWORKDAYS関数とNETWORKDAYS.INTL関数の使い分けのポイントになります。
- 任意の曜日を休日(非稼働日)として扱う
- 開始日と終了日が決まっていて、その間の営業日数を数えたい
- 任意の休日を設定し、その休日は営業日数に数えない
NETWORKDAYS.INTL関数の使用例
ここからはNETWORKDAYS.INTL関数の使い方を具体例を使って説明します。
営業日数を自動計算するタスク管理表
関連記事NETWORKDAYS関数を説明する記事でも使った例を再び使います。

NETWORKDAYS.INTL関数の使い方を説明するための具体例については詳しい説明を省略します。詳しい説明が必要な場合はNETWORKDAYS関数の記事を読んでおいてください。
この部分の冒頭に書いています。
タスク管理表を作成する場面を考えます。
そのタスク管理表に対する要件は次の通りです。
- プロジェクトの開始日と終了日は決まっているため各タスクも開始日と終了日でスケジュールしたい
- 開始日と終了日を先に決めたとき、各タスクに実際に使える日数(営業日数)を計算したい
- 毎週月曜日のみを休日とする
- 日数が不足するタスクには増員するなどの対策を打つ(だから日数を可視化する必要がある)
要件を満たすタスク管理表の作成例
この要件を満たすタスク管理表を作成しました。
毎週月曜日を休日として設定する必要があるのでNETWORKDAYS.INTL関数を使います。

E列とF列に日付を入力すると、G列に自動でその間の営業日数が計算される仕組みにしています。
G列にはNETWORKDAYS関数を次のように設定しました。
=NETWORKDAYS.INTL([@[開始日(予定)]], [@[終了日(予定)]], 12, 祝日マスター[休日])
第1引数はE列、第2引数はF列を指定しています。
第3引数には上に記載した表に従って「12」を指定しました。(月曜日のみを休日としたいので12を指定)
第4引数はテーブルで定義した祝日マスター(会社の休日や祝日を一覧化したもの)を指定しました。

まとめ
NETWORKDAYS.INTL関数は、土日ではなく任意の曜日を休日として設定できます。
例えば、飲食店などのサービス業は土日はお仕事されますよね。
そういう場合にはNETWORKDAYS.INTL関数が役に立つと思います。
- 任意の曜日および休日を除く営業日数を数えることは、NETWORKDAYS.INTL関数で実現できる
- NETWORKDAYS関数の第4引数に指定する休日は予めテーブルで定義しておく
- NETWORKDAYS.INTL関数とNETWORKDAYS関数の違いは、必ず土日が休日かどうかにある
土日を休日とする場合は、NETWORKDAYS関数の方が便利です。
NETWORKDAYS関数について説明していますので良かったら参考にしてください。
また、NETWORKDAYS.INTL関数と似た機能を持つWORKDAY.INTLという関数もあります。
こちらも参考にしてみてください。
コメント