Excelで土日と祝日を除いて、開始日から終了日までの日数を求める方法です。
NETWORKDAYS(ネットワーク・デイズ)関数を使います。
サンプル表の確認
ここでは、下のような表があってA列に「勤務開始日」が入力されています。
B列には「勤務終了日」が入力されています。
C列の営業日数にNETWORKDAYS関数を使って、土日と祝日を除いた勤務開始日から勤務終了日までの日数を求めます。
日付の表示形式
A列とB列の日付の表示形式は、[yyyy/mm/dd(aaa)]の表示にしています。
セルの表示形式で日付に曜日を表示する方法は、曜日の表示、または、日付に曜日を表示する(ユーザー定義)を参照してください。
祝日の一覧
また、国民の祝日や特定休業日などの一覧を作成しておきます。
ここでは[祝日]シートに作成しています。祝日は、年によって変わります。
参考祝日リストを作成しておくと、予定表を作成する場合も活用できます。
-
年と月を選択するだけで繰り返し使用できる予定表を作成(関数使用)
Excelで予定表(スケジュール表)を作成することは多いと思いますが、毎月、作成するのは面倒ですね。 ここでは、[年]と[月]を選択するだけ ...
NETWORKDAYS関数
NETWORKDAYS(ネットワーク・デイズ)関数は、=NETWORKDAYS(開始日,終了日,祭日)となります。
開始日:開始日の日付または、日付が入力されているセルを指定します。
日付を指定する場合は「ダブルクォーテーション(")」で囲みます。
終了日:終了日の日付または、日付が入力されているセルを指定します。
日付を指定する場合は「ダブルクォーテーション(")」で囲みます。
祭日:国民の祝日や特定休業日など、計算から除く日付または、日付が入力されているセルを指定します。
日付を指定する場合は「ダブルクォーテーション(")」で囲みます。
※祭日は省略可です。
省略すると、土日を除いた日付が求められます。
セル[C2]からセル[C11]に土日と祝日を除いた営業日数を求めます。
セル[C2]をアクティブにして、[数式]タブの[関数ライブラリ]にある[日付/時刻]ボタンをクリックします。
一覧の中から[NETWORKDAYS]をクリックします。
ポップヒントには、以下のように記されています。
NETWORKDAYS(開始日,終了日,祭日)
開始日と終了日の間にある週日の日数を計算します。
クリックすると、下のように[関数の引数]ダイアログボックスが表示されます。
[開始日]のテキストボックスには、セル[A2]を指定します。
[開始日]のテキストボックス内にカーソルを置いて、セル[A2]をクリックするとテキストボックスに「A2」と表示されます。
同じように[終了日]にはセル[B2]を指定します。
[祭日]には[祝日シートのセル範囲]を指定します。
セル範囲を固定するため、[F4]キーを使って絶対参照にします。[OK]ボタンをクリックして閉じます。
参考[祭日]は、祝日のセル範囲に名前を付けて、名前を指定しても構いません。
-
セル範囲に名前を定義して数式で使用する
Excelでは、セル範囲に名前を定義しておくと、関数の引数に名前を利用することができます。 定義された名前は、[数式]タブの[数式で使用]ボ ...
[関数の引数]ダイアログボックスを表示する方法は、ほかにもあります。
-
関数を使って作業効率化(関数の探し方とダイアログボックスの表示)
Excelの関数がわかると、作業を効率化できます。 [関数の挿入]ダイアログボックスや[関数の引数]ダイアログボックスの表示方法を解説します ...
数式のコピー
セル[C2]には下のように数値が表示されます。
数式バーには、以下の数式が表示されています。後は、数式をコピーするといいですね。
=NETWORKDAYS(A2,B2,祝日!$A$2:$A$18)
下の行へ数式をコピーする場合は、セル[C2]を選択してセルの右下に表示されるマウスポインタの形が十字の形になった時にダブルクリックします。
隣の列の連続した同じ行まで数式がコピーされます。
※行が少ない場合は、ドラッグでも構いませんが、行数が多い場合はフィルハンドルをダブルクリックする方が早いです。
隣の列と同じ行までコピーされますが、途中に空白セルがある場合は、空白セルの上まで、連続した行までとなります。
下のようになります。完成ですね。
参考フィルハンドルのダブルクリックについては、以下の記事で解説しています。
-
フィルハンドルのダブルクリックで隣接する列の連続した行まで入力
オートフィルハンドルをダブルクリックすると、隣接する列の連続した行までまとめて入力することができます。 ただし、この操作は列に対してのみです ...
NETWORKDAYS.INTL関数
土日以外の曜日を除きたい場合は、NETWORK.INTL(ネットワーク・インターナショナル)関数を使います。
指定する曜日と祝日を除いて、開始日から終了日までの日数を求めます。
NETWORKDAYS関数は、土日が休日となりますが、NETWORKDAYS.INTL関数は土日以外の曜日を指定できます。
土日以外が休業日となっている場合に対応できる関数です。Excel2010以降で使用できます。
=NETWORKDAYS.INTL(開始日,終了日,曜日,祭日)
曜日:計算から除く曜日を番号で指定します。
例えば、上記と同じ表で「火曜日と水曜日」が休業日の場合は、下の表から週末番号は「4」と分かりますので、以下のようになります。
=NETWORKDAYS.INTL(A2,B2,4,祝日!$A$2:$A$18)
週末番号 | 曜日 |
1または省略 | 土曜日と日曜日 |
2 | 日曜日と月曜日 |
3 | 月曜日と火曜日 |
4 | 火曜日と水曜日 |
5 | 水曜日と木曜日 |
6 | 木曜日と金曜日 |
7 | 金曜日と土曜日 |
11 | 日曜日のみ |
12 | 月曜日のみ |
13 | 火曜日のみ |
14 | 水曜日のみ |
15 | 木曜日のみ |
16 | 金曜日のみ |
17 | 土曜日のみ |
週末の曜日は7桁の数字で指定することもできます。
例えば、火曜日と木曜日が休業日の場合は、[0101000]となります。
月曜から開始で、稼働日が0、非稼働日が1になります。
以下は、Microsoftのページです。
NETWORKDAYS.INTL 関数 - Microsoft サポート(Microsoft)
参考NETWORKDAYS関数は、以下の記事でも解説しています。
-
開始日から終了日までの稼働日数を求める[NETWORKDAYS関数]
稼働日数を求める関数を使用すると、開始日から終了日までの稼働日数を簡単に求めることができます。 また、開始日から終了日までの祝日も指定できま ...
WORKDAY関数については、以下の記事で解説しています。
-
開始日から指定した営業日後の日付を求めるにはWORKDAY関数
土日と祝日などを除いて、開始日から指定した日数の経過した日付を求める方法です。 WORKDAY関数を使います。 土日以外の曜日を除きたい場合 ...