スプレッドシートでガントチャートを作る際に休日を加味して工数、開始日、終了日を適切に処理する方法

前置き

これはworkday関数とNetworkday関数を使うだけの話なので、あまり深みは無い内容です。

課題

具体的な内容

工数&開始日→終了日

開始日:9/7、工数:2日と4日、にした場合で考える。
土日を働かないため、正しい終了日は9/8と9/13になる。
何も考えず加算式を使う場合とworkday関数を使う場合の結果が以下の図。

WORKDAY("開始日", "工数" -1)

を終了日の式に使うことで、理想状態と同じにできている

工数&開始日→終了日(開始日が休日になっている場合)

場合によっては開始日が休日に設定されていたりもするかもしれない。
その場合はworkdayを2重に重ねることで解決できる。

WORKDAY(WORKDAY("開始日", 1), "工数" -1)

工数&終了日→開始日

終了日:9/14、工数:2日と5日、にした場合で考える。
土日を働かないため、正しい開始日は9/13と9/8になる。
何も考えず加算式を使う場合とworkday関数を使う場合の結果が以下の図。

WORKDAY("終了日", -"工数" +1)

を開始日の式に使うことで、理想状態と同じにできている

開始日&終了日→工数

開始日:9/7、終了日:9/8と9/12、にした場合で考える。
土日を働かないため、正しい工数は2日と4日になる。
何も考えず加算式を使う場合とNetworkdays関数を使う場合の結果が以下の図。

NETWORKDAYS("開始日", "終了日")

工数の式に使うことで、理想状態と同じにできている。

できないこと

祝日はWorkday関数の第三変数で設定できるが、特殊な土日出勤日は対応できない。
たぶんworkday関数を使わずに頑張ればできる