Excel。意外と難しい、5日後の最初の月曜日は何日を求める方法
<WORKDAY.INTL関数>
ちょっとした話から、5日後の最初に来る月曜日に資料発送をしたいけど、
計算式をどうしたらいいのかな?というご質問がありました。
なんでも、5日後を求めるのは簡単だけど、
5日後の月曜日ということなので、
IF関数を使ったりして、求めているということでした。
まずは確認しましょう。
注文日が6月1日木曜日なので、
まずは5日後となると、6月6日火曜日になりますから、
そのあとに来る最初の月曜日なので、12日の月曜日というわけですね。
確かに理屈としては、簡単そうですが、ちょっと難解な匂いがしますよね。
実は、これを簡単に処理することが出来る関数があるのです。
ただし、Excel2010から登場した関数で、
【WORKDAY.INTL関数】(ワークデイ・インターナショナル関数)
という関数を使用します。
では3行目に作成してみましょう。A3に2017/6/1と入力します。
B3には=A3とセル参照の数式を作成します。
当然同じ日が表示されますので、
表示形式のユーザー定義を使って曜日に変えましょう。
では、B3をクリックして、
セルの書式設定ダイアログボックスを表示しましょう。
Ctrl+1というショートカットキーを使うのがいいでしょう。
表示形式のユーザー定義の種類を、
aaaと入力すれば、表示が曜日に変わりますね。
あとはOKボタンをクリックしましょう。
ついでに中央揃えも設定しておきます。
これで、準備OKですね。
では、D3にWORKDAY.INTL関数を作っていきますので、
WORKDAY.INTL関数ダイアログボックスを表示しましょう。
開始日には、A3の5日後なので、A3+5と設定します。
日数には、1を設定します。
この日数ですが少々わかりにくいかもしれません。
どちらかというと、日数というよりも、
この場合は、『最初の』という意味でとらえるといいかもしれません。
2にすると、2番目に登場する日になります。
本来は、必要な日数を数値で指定する引数です。
週末には、"0111111"と設定します。
この"0111111"ですが、月曜日から日曜日の稼働日の意味です。
0は稼働日で1はお休みという表現をすることが出来る引数です。
そもそも、WORKDAY.INTL関数は、
「週末(曜日指定可能)と祝日を除いた日数後の日付」
を算出することが出来る関数なのです。
なので、"0111111"とすれば、
月曜日以外は全部お休みという意味になりますから、
月曜日の日付を求めることが出来るということなのです。
今回は、6月なので祭日はありませんので、祝日は飛ばしますが、
本来は、祝日は祝日表を設けておいて設定する必要があります。
それでは、OKボタンをクリックしましょう。
E3は、B3と同じ方法で作成しております。
このようにすれば、
何日後の最初の月曜日はいつ?
ということも算出することが出来きますよ。