NETWORKDAYS.INTL関数:指定した曜日と祭日を除いた二つの日付間の日数を取得する

NETWORKDAYS.INTL 関数は Excel で用意されている関数の一つで、週末に指定した曜日と別途指定した祭日は除いた上で、二つの指定した日付の間の日数を取得します。ここでは Excel における NETWORKDAYS.INTL 関数の使い方について解説します。

※ Excel の対応バージョン : 365 web 2021 2019 2016 2013 2010

(Last modified: )

NETWORKDAYS.INTL関数の使い方

NETWORKDAYS.INTL 関数は引数で指定した二つの日付間の日数を取得します。ただし週末に指定した曜日と別途指定した祭日は除きます。

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

1 番目の引数に開始の日付、 2 番目の引数に終了の日付をそれぞれシリアル値で指定します。取得できる日数は例えば開始日が 2021/09/14 で、終了日が 2021/09/15 だった場合は 2 となります。

3 番目の引数は省略可能な引数で、週末の曜日をあらかじめ用意された値の中から選択して指定します。詳しくはこのあとは解説しますが、省略した場合は 1 が選択したものとみなされて週末の曜日は土曜日と日曜日になります。また曜日を表す文字列を指定することもできます。

4 番目の引数は省略可能な引数で、指定する場合は祭日の日付をシリアル値で指定します。複数の祭日を設定する場合は、祭日の日付を Excel 上で連続したセルに入力した上でセル範囲として指定するか、日付を示すシリアル値の配列定数で指定します。

先ほど記述した週末の曜日について指定可能な値は次のとおりです。

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

NETWORKDAYS.INTL 関数の 3 番目の引数に 5 を指定した場合は、週末の曜日が水曜日と木曜日となり、この曜日は日数のカウントから除外されます。

3 番目の引数を文字列で指定する場合、"0000011" のように 7 つの 0 または 1 を組み合わせた文字列を指定します。月曜日が先頭の文字、日曜日が最後の文字に対応しており週末の曜日には 1 、それ以外は 0 を指定します。もし NETWORKDAYS.INTL 関数の 3 番目の引数に "1000011" と指定した場合は週末の曜日が月曜日、土曜日、日曜日となり、この曜日は日数のカウントから除外されます。

サンプル1

例えば開始日に 2021/09/09 、終了日に 2021/09/21 、週末番号として 4 を指定した場合、火曜日と水曜日を除いた日数は 10 となります。

NETWORKDAYS.INTL関数のサンプル(1)

実際に 1 番目の引数に 2021/09/09 を表すシリアル値 44448 、 2 番目の引数に 2021/09/21 を表すシリアル値 44460 、 3 番目の引数に 4 を指定すると、 NETWORKDAYS.INTL 関数はこの二つの日付の間の日数として 10 を返します。

=NETWORKDAYS.INTL(44448,44460,4)
--> 10

サンプル2

開始日に 2021/09/09 、終了日に 2021/09/21 、週末番号として 3 を指定したあと、 2021/09/15 と 2021/09/16 を祭日として指定した場合、週末である月曜日と火曜日に加えて祭日 2 日を除いた日数は 7 となります。

NETWORKDAYS.INTL関数のサンプル(2)

実際に 1 番目の引数に 2021/09/09 を表すシリアル値 44448 、 2 番目の引数に 2021/09/21 を表すシリアル値 44460 、 3 番目の引数に 3 、 4 番目の引数に 2021/09/15 を表すシリアル値の 44454 と 2021/09/16 を表すシリアル値の 44455 を配列定数の形で指定すると、 NETWORKDAYS.INTL 関数はこの二つの日付の間の日数として 7 を返します。

=NETWORKDAYS.INTL(44448,44460,3,{44454,44455})
--> 7

※ 日付や時刻に関するシリアル値については「Excelにおける日付と時刻のシリアル値とは」を参照されてください。

※ 配列定数については「配列定数の利用方法」を参照されてください。

NETWORKDAYS.INTL関数のサンプル

それでは実際に NETWORKDAYS.INTL 関数を使ってみます。 Excel のシートに次のようにデータを入力しました。

NETWORKDAYS.INTL関数のサンプル(1)

日付間の日数を表示する E3 セルを選択し、次のように入力しました。 NETWORKDAYS.INTL 関数の 1 番目の引数に開始日のシリアル値が含まれる B3 セル、 2 番目の引数に終了日のシリアル値が含まれる C3 セル、 3 番目の引数に週末番号が含まれる D3 セル、 4 番目の引数に祭日の一覧をセル範囲の B6:B7 と指定します。

=NETWORKDAYS.INTL(B3,C3,D3,B6:B7)

NETWORKDAYS.INTL関数のサンプル(2)

Enter キーを押すと、 E3 セルには次のように表示されます。

NETWORKDAYS.INTL関数のサンプル(3)

開始日から終了日までの日数を取得し E3 セルに表示しました。該当の期間 30 日間の中で、週末に指定した日曜日が 4 日、祭日が 2 日あるため、これらを除外した日数は 24 日間となります。

-- --

Excel における NETWORKDAYS.INTL 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。