任意に定休日を設定して営業日数を計算するNETWORKDAYS.INTL関数 #Excel #関数

営業日数を計算するのに便利なNETWORKDAYS関数ですが、ネックは定休日が土日固定であること。

Excel2010以降なら土日以外を定休日として設定できるNETWORKDAYS.INTL関数ができて、より便利になりましたよ。

今回はNETWORKDAYS.INTL関数について解説していきます(#^^#)

NETWORKDAYS.INTL関数の基本構成

NETWORKDAYS.INTL(開始日, 終了日,[週末], [祭日])

以下、各引数の内容です。

開始日

起算日を表す日付を指定します。

終了日

対象期間の最終日を表す日付を指定します。

[週末]

この引数は省略可能です。

関数内に設定されている週末番号(本記事内の下部参照)か文字列で指定することで任意に週末を設定できます。

この引数を省略した場合はNETWORKDAYSと同じく土日が週末となります。

[祭日]

この引数は省略可能です。

祝日や職場の非営業日など、引数「週末」で設定した曜日以外に稼動日数の計算から除外する日付の任意の範囲を指定します。

NETWORKDAYS.INTL関数の使い方

今回のサンプルは、先日記事にしたNETWORKDAYS関数のものをNETWORKDAYS.INTL関数に置き換えてみます。

開始日と終了日から営業日数を計算するNETWORKDAYS関数 #Excel | Excelを制する者は人生を制す ~No Excel No Life~

【事前準備】祝日用のシートを用意する

関数ガントチャート①

まず、引数「祭日」に対応させる祝日用のシートを最初に用意しましょう。

こちらは、Excelは祝日を自動で判断してくれませんので、個別に用意してあげる必要があります。

ちなみに、こういう追記していく可能性のあるデータは、「テーブルとして書式設定」でテーブル化しておくと、後程記述していく関数のメンテナンスが楽ちんになるのでおすすめです(*^-^*)

「テーブルとして書式設定」についてもっと詳しく知りたい人は、以下の関連記事を参照してください。

Excelの表はなるべくテーブル化しよう!テーブルのメリット6選 | Excelを制する者は人生を制す ~No Excel No Life~

関数の記述方法

NETWORKDAYS.INTL関数

E4セルを例に挙げて解説しますね。

まず、引数「開始日」はC4セルを、引数「終了日」はD4セルをそれぞれ指定します。

今回はワークシート上の見出しの名称も引数名とまったく一緒なので分かりやすいですね。

そして、今回「週末」の部分は「火曜日と水曜日」を定休日にしてみたので、それに該当する週末番号として"4"を指定すればOKです。

最後に引数「祭日」には事前準備しておいた「祝日」シートの日付が入力されている範囲を指定します。

今回だと、A2:A12のセル範囲を指定すると、テーブル化されているため、「テーブル1[祝日]」というように自動的にテーブル名に変わります。

これは、「構造化参照」と呼ばれる参照形式であり、「祝日」シートにデータをどんどん追加していっても、NETWORKDAYS.INTL関数の参照範囲も自動的に拡張されます。

メンテナンスフリーで楽ちんですよ(*^-^*)

なお、記述して数式を確定すると、

「終了日」-「開始日」-(期間中あれば週末の日数)-(期間中あれば祭日の日数)+1

が関数の計算結果として算出され、今回のE4セルの返り値は"10"になります。

ちなみに"10日"と表示されているのは表示形式を"0日"の形式にしているためなので、返り値は数値ですので混乱なさらず(´・ω・`)

週末番号

週末番号 週末の曜日
1 または省略 土曜日と日曜日
2 日曜日と月曜日
3 月曜日と火曜日
4 火曜日と水曜日
5 水曜日と木曜日
6 木曜日と金曜日
7 金曜日と土曜日
11 日曜日のみ
12 月曜日のみ
13 火曜日のみ
14 水曜日のみ
15 木曜日のみ
16 金曜日のみ
17 土曜日のみ

まとめ

ただでさえ便利だったNETWORKDAYS関数が、ユーザー好みにカスタマイズできるようになってさらに便利になりましたね。

ちなみに、週末番号以外にない曜日の組み合わせ(たとえば月・金など)が定休日の場合は、「祭日」のところで祝日と合わせて対応しない曜日の休みも入れ込むしか現状は手がないです。(あんまりないと思いますが)

ご参考になれば幸いですm(__)m