開始日と終了日が分かっている場合にその間の稼働日数を自動計算する方法を別記事で紹介しました。
今回は、開始日と稼働日数が分かっている場合に、終了日を自動計算する方法を紹介します。
もちろん、会社の休日や祝日は稼働日にはカウントしない方法です。
エクセルで開始日と稼働日数から終了日を自動計算する方法
エクセルで用意されているWORKDAY関数を使えば、開始日と稼働日数から終了日を求められます。
まずはWORKDAY関数の定義を確認しておきましょう。
WORKDAY(開始日, 日数, [祭日])
- 開始日:計算の起点となる開始日を指定します(必ず設定が必要)
- 日数:開始日からの日数を指定します。(必ず設定が必要)
正の数を指定すると、開始日から日数分経過した後の日付が返値になります
負の数を指定すると、開始日より前に日数分遡った日付が返値になります - 祭日:営業日数のカウントから除外する日を指定します(設定は任意)
<返値>
開始日から土日および祭日で指定された休日を除いた日数を加算した日付
※WORKDAY関数は、土日を休日として扱います
上の定義ではわかりにくかもしれませんので、少し補足します。
例えば、WORKDAY(2024/1/15※1, 3, [祝日リスト])というようにWORKDAY関数の引数を設定したとしましょう。
この場合は、WORKDAY関数の返値は、2024/1/18となります。
2024/1/15の3日を加算した(3日後の)日付(=2024/1/18)が返ってくるということです。
※1ここではわかりやすくするために2024/1/15と日付を書いています。
実際には2024/1/15のシリアル値を設定する必要があります。
WORKDAY関数の使用が適する場面
プロジェクトでスケジュールを作るときにはWORKDAY関数は活躍すると思います。
スケジュール関係であれば、NETWORKDAYS関数よりもWORKDAY関数の方が適するかもしれません。
一般的にはWORKDAY関数は下記のような場面で使うとよいでしょう。
- 土日を休日(非稼働日)として扱う
- 開始日から指定した日数後(前)の日付を知りたい
- 任意の休日を設定し、その休日は営業日数に数えない
WORKDAY関数の使用例
NETWORKDAYS関数を説明した記事と同じようにタスク管理表を作る場面を想定します。
ただし、今回は終了日を自動計算したいという要求があります。
そこがNETWORKDAYS関数の説明記事で出した例と異なる点です。
終了日を自動計算するタスク管理表
あるプロジェクトでタスク管理表を作ることになりました。
各タスクに必要な作業日数を入力することで、いつまでにそのタスクを終了しないといけないのかを見えるようにしたいと考えています。
- 各タスクの開始日とそれぞれのタスクにかかる作業日数から作業の完了期限を計算したい
要件を満たすタスク管理表の作成例
こんな感じでタスク管理表を作ってみました。


G列の終了日をWORKDAY関数で自動計算しています。
そのG列には下の通り関数を入力しています。(上の画像で見にくいとき用に参考として書いておきます)
=WORKDAY([@[開始日(予定)]], [@[実働日数(予定)]]-1, 祝日マスター[休日])
これを見ると、第2引数には日数から1を引いたものが設定されています。
これは、実働日数が1日であれば開始日と終了日が同じになるように表示したいからです。
関数の仕様が開始日に日数を加算した日付が返値なので、-1がないと開始日翌日になってしまいます。
ちなみに、E3~E6は上のタスクの終了日翌日が自動で開始日として入力されるようにWORKDAY関数を埋め込むこともできます。こうしておけば、最初のE2に開始日を入れるだけで他の開始日、終了日はすべて自動入力されるので作業が楽になります。

まとめ
以上でWORKDAY関数の説明は終わりです。
途中でも書いたのですが、WORKDAY関数の方がタスクの開始日と終了日の予定を立てる時には便利です。
一方で、実績を記載する時にはNETWORKDAYS関数で実際にかかった日数を自動計算するのが良いかなと思います。
- 開始日と稼働日数から終了日を自動計算するにはWORKDAY関数を使えばよい
- WORKDAY関数は、開始日から日数を加算した日付を返す(ただし、休日を除く)
- 休日は任意の日付を設定できる
なお、土曜日と日曜日以外を週末の休日として扱いたい場合は、WORKDAY.INTL関数を使います。
こちらも参考にどうぞ。
さらに似たような関数にNETWORKDAYS関数とNETWORKDAYS.INTL関数があります。
これらの解説記事もありますので参考にしてみてください。
コメント