使用関数:>WORKDAY.INTL、IF
開始日より一定の期間を経過した期日を土日と祝日を除外して求める時はWORKDAY関数を使いますが、事業所の休業日が土日以外であったら、WORKDAY.INTL関数を使います。土曜が出勤で水曜と日曜が休みというようなケースですね。
WORKDAY.INTLで色々な組み合わせの休業日と祝日を除いた~日後の期日を求める
請求書の発行日「F1」セルを開始日として、休日と祝祭日を除いた10営業日後の日付を支払期限「C6」セルに表示してみましょう。
「休日」となる曜日は業種や事業所によって様々です。どんな組み合わせの休日でも指定することができるのがWORKDAY.INTL(ワークデイ・インターナショナル)です。
この関数は「日付/時刻」のライブラリに属し、WORKDAYのすぐ下にあります。
ダイアログを比べてみると、WORKDAYの引数に「週末」が加わった構成であることがわかりますね。
この引数「週末」に定休日の曜日を指定するわけです。
※「開始日」「日数」「祭日」についてはWORKDAYの方で詳述しています。祝日リストの作成と管理も記載してありますのでご参照下さい。
引数「週末」の曜日に対応する番号の一覧
引数「週末」で休日の曜日を指定するには、曜日それぞれに固有の番号を使います。
番号 | 休日となる曜日 |
---|---|
1 | 土と日 |
2 | 日と月 |
3 | 月と火 |
4 | 火と水 |
5 | 水と木 |
6 | 木と金 |
7 | 金と土 |
11 | 日 |
12 | 月 |
13 | 火 |
14 | 水 |
15 | 木 |
16 | 金 |
17 | 土 |
例えば、土曜が出勤で日曜だけが休日となるなら、「週末」の引数に「11」と入れればいいわけです。数式は「=WORKDAY.INTL(F1,10,11,祝祭日)」
でも、上記の対応表にあるのは単独の曜日と連続した曜日の組み合わせのみ。「週末」である以上、当然とも言えますが、「水曜と日曜が定休」という指定をするにはどうしたらいいのでしょう?
連続しない定休日(例:水曜日と日曜日)を指定するには…
上記の対応表とは別に、「1=休日」「0=稼働日」として月曜から7字並べ、1週間の営業状況を文字列で示す方式があります。
数式に文字列を組み込む場合はダブルクォーテーション(二重引用符)で括る必要があるので、上図のように水曜日と日曜日を休みとするなら、「”0010001″」と入力します。
数式は「=WORKDAY.INTL(F1,10,“0010001”,祝祭日)」です。
「開始日」を「2018/2/8」とした場合、「水曜日と日曜日」と祝日を除いた、10営業日後の日付は下図の通り、「2018/2/23」となります。
セルに発行日「2018/2/8」を入力して確認。
開始日が未入力の時には支払期限のセルが空欄となるよう、IF関数にネストした数式。「=IF(F1=””,””,WORKDAY.INTL(F1,10,”0010001″,祝祭日))」
連続しない休日に対応する文字列の一覧
連続しない曜日同士の休日に対応する文字列のリストです。
文字列 | 休日となる曜日 |
---|---|
“1010000” | 月と水 |
“1001000” | 月と木 |
“1000100” | 月と金 |
“1000010” | 月と土 |
“0101000” | 火と木 |
“0100100” | 火と金 |
“0100010” | 火と土 |
“0100001” | 火と日 |
“0010100” | 水と金 |
“0010010” | 水と土 |
“0010001” | 水と日 |
“0001010” | 木と土 |
“0001001” | 木と日 |
“0000101” | 金と日 |