「残業申請」や「休暇申請」などのシートを設計する際、指定した日付が労働日か非労働日かを判定したい場合があります。
その場合は、IF 関数 と NETWORKDAYS 関数 を組み合わせることで実現できます。以下の手順をご参照ください。
シート内に、指定した日付が労働日かどうかを判定するフィールドを追加し、次の数式を設定します。
NETWORKDAYS(A3, A3, c_祝日)
NETWORKDAYS 関数の詳細については、こちらのセクションをご参照ください。
A3:日付フィールドを指します。たとえば「残業日」
c_祝日:ステップ 1 で定義したグローバル定数を指します。
この数式では、「開始日」と「終了日」に同じ日付を指定して、その日が労働日かどうかを判定します。
その日付が土日でも祝日リストにも含まれていなければ、結果は「1」を返します。
土日または祝日の場合は、「0」を返します。
この結果は IF 関数の条件として利用できます。

その日付が労働日かどうかに応じて、IF 関数を使って異なる値を返すことができます。 たとえば、異なる残業倍率を適用したり、休暇申請の可否を判定したりする場合に使えます。
残業倍率の計算を例にすると、C3 を ステップ 2 の NETWORKDAYS の判定結果、A6 を「基本時給」とします。
「残業日」が労働日の場合は低い倍率(たとえば 1.33)を適用し、非労働日の場合は高い倍率(たとえば 1.67)を適用するものとします。
例:
IF(C3=1, A6*1.33, A6*1.67)
このようにすると、その日付が労働日かどうかに応じて、システムが自動的に異なる残業倍率を適用し、対応する残業代を計算できます。
