概要
WEEKDAY関数とIF関数と組み合わせると振替休日の日付を求めることができます。
=IF(WEEKDAY(祝祭日,1)=1,祝祭日+1,"")
一方、5月の連休など連続する祝日の振り替え休日は、以下の要領で実現できます。
=IF(WEEKDAY(5月5日セル,1)<=3,5月5日セル+1,"")
本稿では、祝日が日曜日と重なった場合、翌日を振替休日として求める方法を紹介します。
操作手順
連続しない祝祭日が日曜日の場合
ここでは、2008年の勤労感謝の日が日曜日なので、その振替休日を求める方法を紹介します。
- サンプルファイル「sample.xls」を開きます。
- C17セルを選択して、数式バーの[関数の挿入]ボタンをクリックします。
- [関数の挿入]ダイアログボックスで、IF関数を検索します。
- [関数の引数]ダイアログボックスのそれぞれの引数に以下のように入力します。
- 論理式:WEEKDAY(A17,1)=1
- 真の場合:A17+1
- 偽の場合:""
- 数式結果がシリアル値になるので、[書式]-[セル]を選択して、表示形式を「日付」にします。
- 振替休日の日付を表示できました。
C17セルの数式は以下の通りです。
=IF(WEEKDAY(A17,1)=1,A17+1,"")
5月5日が日曜~火曜日の場合に5月6日の振替休日を表示する
- C11セルを選択して、数式バーの[関数の挿入]ボタンをクリックします。
- [関数の挿入]ダイアログボックスで、IF関数を検索します。
- [関数の引数]ダイアログボックスのそれぞれの引数に以下のように入力します。
- 論理式:WEEKDAY(A11,1)<=3
- 真の場合:A11+1
- 偽の場合:""
- 数式結果がシリアル値になるので、[書式]-[セル]を選択して、表示形式を「日付」にします。
- 振替休日の日付を表示できました。
C11セルの数式結果は以下の通りです。
=IF(WEEKDAY(A11,1)<=3,A11+1,"")
備考
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
祝祭日が特定の曜日(主として日曜日)と重なった場合、あるいは、複数の祝祭日が日曜日と重なったとき、その翌日が振替休日となります。
複数の祝祭日が連続しない場合、その日が日曜日であれば、翌日を振替休日となるように数式を作成すればOKです。
5月の連休の場合は、祝日が3日間連続するので、単純に最終日の5月5日が日曜日であるか判定するだけでは不十分です。よって、5月5日が月曜日から水曜日の場合に、翌日を振替休日とすればよいでしょう。
曜日の判定にはWEEKDAY関数を利用し、IF関数と組み合わせて振替休日を求めることができます。なお、数式結果はシリアル値として表示されるので、セルの表示形式を「日付」にします。
振替休日を含めた祝祭日の日付リストを作成しておくと、営業日の計算が行えるようになります。
関数 | 書式 | 説明 |
---|---|---|
IF | IF(論理式,真の場合,偽の場合) |
|
WEEKDAY | WEEKDAY(シリアル値,種類) |
|
WEEKDAY関数の「種類」の引数を「1」にした場合、日曜日が「1」になります。連続しない祝祭日の場合は、以下の式で振替休日の日付を求められます。
=IF(WEEKDAY(祝祭日,1)=1,祝祭日+1,"")
一方、5月5日が日曜日から火曜日の間に、5月6日を振替休日とするには、以下の式で実現できます。WEEKDAY関数の「種類」に1を指定して5月5日の曜日を判定した場合に、その結果が3以下になれば、翌日は振替休日となります。
=IF(WEEKDAY(5月5日セル,1)<=3,5月5日セル+1,"")