任意の期間に授業をできる日が何日あるかを曜日ごとに計算する方法を解説します。
新型コロナウイルスの感染拡大により休校期間が増えているため作成しました。
年間授業日数をどのように確保するかの検討用などに使用できます。
【完成イメージ】
(設定リスト)
ダウンロードできるファイルも用意しています(ダウンロードはこのページの下のほうから)。
エクエルで任意の期間の曜日の日数を数えるには「NETWORKDAYS.INTL関数」を使用します。
書き方 | =NETWORKDAYS.INTL(開始日,終了日,[週末],[祭日]) |
---|---|
(開始日,終了日) | ここで対象とする期間を指定 |
(週末) | 計算から除外する曜日を指定(※1) |
(祭日) | 祭日扱いで計算から除外する日を指定(省略可能) |
使用例 | =NETWORKDAYS.INTL(B1,B2,"0111111") |
使用例の意味 | B1セルからB2セルまでの期間で、月曜日の数を計算 |
※1(週末の指定方法)…月〜日の順で計算対象とする日を「0」、計算対象外とする日を「1」として数字を並べる。「0111111」なら月曜だけ計算対象となる。
「0111111」が月曜だけ計算、「1011111」が火曜日だけ計算、「1111110」が日曜日だけ計算となるので、計算式を曜日分用意すれば、曜日ごとの日数を算出できます。
この設定方法だと、指定された期間の曜日を計算するだけになります。
授業日数を計算するのであれば、祝祭日や開校記念日などを引く必要があります。
次に指定された期間から特定の日を除く場合の方法を説明します。
計算する日数から除きたい特定日はNETWORKDAYS.INTL関数の(祭日)に設定します。
上の例では、NETWORKDAYS.INTL関数の最後に設定している「D2:D5」が祭日です。
D2セルからD5セルに設定された日付は祭日として計算対象となりません。
参考までに、祭日の設定をしていないときの結果はコチラです。
7月24日が計算対象となっているかいないかで、結果「14」と「13」の違いが出ています。
ここまでで説明したNETWORKDAYS.INTL関数を使って曜日別の授業日数、休日数を計算します。
(J18セル〜J50セルに祝祭日を設定)
期間の全日数を計算し、祝祭日を考慮して計算した結果(B19セル)を引いている。
期間の全日数を計算し、授業日を考慮して計算した結果(H20セル)を引いている。
(N18セル〜N50セルに授業日とする日を設定)
設定した授業日とする日が計算対象から除かれるので、残りが休日数となる。
計算式が組み込まれているエクセルファイルを用意しました。
ダウンロードはこちらから ⇒ エクセル授業日数計算シート
万が一、ダウンロードしたファイルで何らかの損害が発生しても、責任は負えません。
あくまで自己責任でご利用ください。
上で説明した計算式を設定するだけでは、期間の日付に何も設定されていないときに土曜日の計算が正しくされません。ダウンロードできるファイルでは、この不具合に対応するための式(IF文)を土曜日を計算するセルにだけ設定しています。