いまさら聞けないExcelの使い方講座
【Excel】営業日を指折り数えていない? 休日を考慮した日数を計算するテクニック
2023年3月9日 06:55
「○営業日後」っていつ? Excelで自動計算する方法
在庫管理やサポートの業務を担当していると「○営業日後」という表現がよく使われますよね。○営業日後の日付を入力する際、1,2,3……、と指折り数えて入力していませんか? 確認のために数えることはありますが、その結果を手入力するのはあまりスマートではありません。日付と曜日がずれてしまったりするミスの原因にもなります。
「○営業日後」を数えるための関数を覚えておきましょう。WORKDAY.INTL(ワークデイ・インターナショナル)関数です。似た名前の関数として、WORKDAY(ワークデイ)関数もありますが、WORKDAY関数で計算できるのは土・日・祝日を除く営業日のみ。例えば、火曜日だけ休業日の業界や、日曜日と水曜日は休みといったシフトには対応できません。
WORKDAY関数の機能はWORKDAY.INTL関数で代用できるので、より汎用性の高いWORKDAY.INTL関数の使い方をマスターしておきましょう。
WORKDAY関数とWORKDAY.INTL関数
WORKDAY関数とWORKDAY.INTL関数は、どちらも[開始日]を基準にして土・日・祝日を除いた「○営業日後」を求める関数です。WORKDAY関数は「土日を除く」、WORKDAY.INTL関数は「任意の曜日を除く」という点が異なります。構文を比べてみましょう。
[祭日]には、休日扱いにする日付のリストをセル範囲で指定します。省略した場合、WORKDAY関数では土日、WORKDAY.INTL関数では[週末]の値に対応する曜日が除外されます。なお、WORKDAY.INTL関数の引数[週末]を「1」(または省略)とすると、土日が除外されてWORKDAY関数と同じ結果になります。
例えば、休日扱いにするリストがなく、土日のみ除外した営業日を数えるなら、WORKDAY関数とWORKDAY.INTL関数の数式はほぼ同じです。ここでは、問い合わせの受付日を[開始日]として、回答期限の3営業日後を求めます。
休日扱いにする日付のリストがある場合のWORKDAY関数とWORKDAY.INTL関数の動作も見てみましょう。そのほかに除外する曜日は土日です。WORKDAY.INTL関数の引数[週末]は「1」(または省略)とします。また、数式をコピーすることを考慮して、引数[祭日]に指定するリストのセル範囲(ここではセルE2~E18)は絶対参照にしておきます。
なお、休日扱いにする日付には、組織の創業記念日や有給休暇など、任意の日付を入力しても構いません。指定するセル範囲は日付のみとしてください。
土日以外を除外するならWORKDAY.INTL関数
土日以外が休業日の場合、例えば火曜日のみ休業日でほかの曜日は営業日といった場合は、WORKDAY.INTL関数を利用することになります。火曜日を除外する時の[週末]に指定する値は「13」です。休日扱いにするリストの有無による結果の違いに注目してください。
水曜と日曜を除外したい時は?
WORKDAY.INTL関数の引数[週末]に指定できる値は「1」~「7」「11」~「17」です。この一覧の組み合わせに該当しない曜日を休業日とする場合はどうしたらいいでしょう? 営業日を「0」、休業日を「1」で表現して「"」で囲んで[週末]に指定します。
一週間の始まりを月曜とした7桁の値を考えて、休業日に該当する曜日を「1」とします。例えば、水曜と日曜を休業日とする場合は"0010001"となります。
フラグのON/OFFのようなイメージで使いやすいかもしれませんね。もちろん土日を除外するのに「"0000011"」と指定しても構いません。ただし残念ながら「"1111111"」は指定できません。
似たような関数名に迷わない
WORKDAY.INTL関数は、土日以外の曜日も休業日として扱えます。土日固定で休業日扱いとするWORKDAY関数よりも便利ではないでしょうか。また、日付計算に使う関数には、WEEKDAY関数、NETWORKDAYS関数、NETWORKDAYS.INTL関数など、似たような名前のものが多く悩みますよね。まずは「○営業日後」を求めるWORKDAY.INTL関数をぜひマスターしてください。