振替休日を求めるには
日付や祝日の計算 (8)
日曜日が祝日の場合、翌日の月曜日を振替休日とする方法を紹介します。
はじめに
祝祭日が特定の曜日(主として日曜日)と重なった場合、あるいは、複数の祝祭日が日曜日と重なったとき、その翌日が振替休日となります。
複数の祝祭日が連続しない場合、その日が日曜日であれば、翌日を振替休日となるように数式を作成すればOKです。
5月の連休の場合は、祝日が3日間連続するので、単純に最終日の5月5日が日曜日であるか判定するだけでは不十分です。よって、5月5日が月曜日から水曜日の場合に、翌日を振替休日とすればよいでしょう。
曜日の判定にはWEEKDAY関数を利用し、IF関数と組み合わせて振替休日を求めることができます。なお、数式結果はシリアル値として表示されるので、セルの表示形式を「日付」にします。
振替休日を含めた祝祭日の日付リストを作成しておくと、営業日の計算が行えるようになります。
| A | B | C | |
|---|---|---|---|
| 1 | 2012 | 年 | |
| 2 | |||
| 3 | 日付 | 祝日 | 振替休日 |
| 4 | 01/01(日) | 元日 | |
| 5 | 01/09(月) | 成人の日 | |
| 6 | 02/11(土) | 建国記念の日 | |
| 7 | 03/20(火) | 春分の日 | |
| 8 | 04/29(日) | 昭和の日 | |
| 9 | 05/03(木) | 憲法記念日 | |
| 10 | 05/04(金) | みどりの日 | |
| 11 | 05/05(土) | こどもの日 | |
| 12 | 07/16(月) | 海の日 | |
| 13 | 09/17(月) | 敬老の日 | |
| 14 | 09/22(土) | 秋分の日 | |
| 15 | 10/09(火) | 体育の日 | |
| 16 | 11/03(土) | 文化の日 | |
| 17 | 11/29(木) | 勤労感謝の日 | |
| 18 | 12/23(日) | 天皇誕生日 |
WEEKDAY関数とIF関数と組み合わせると振替休日の日付を求めることができます。
=IF(WEEKDAY(祝祭日,1)=1,祝祭日+1,"")
一方、5月の連休など連続する祝日の振り替え休日は、以下の要領で実現できます。
=IF(WEEKDAY(5月5日セル,1)<=3,5月5日セル+1,"")
祝日が日曜日と重なった場合、翌日を振替休日として求める方法を紹介します。
操作手順
連続しない祝祭日が日曜日の場合
ここでは、2012年の元日が日曜日なので、その振替休日を求める方法を紹介します。
- C4セルを選択して、数式バーの[関数の挿入]ボタンをクリックします。
- [関数の挿入]ダイアログボックスで、IF関数を検索します。
- [関数の引数]ダイアログボックスのそれぞれの引数に以下のように入力します。
- 論理式:WEEKDAY(A4,1)=1
- 真の場合:A4+1
- 偽の場合:""

- 数式結果がシリアル値になるので、[数値]カテゴリの[セルの書式設定]を選択して、表示形式を「日付」にします。
セルの書式設定ダイアログボックスで分類を[ユーザー定義]にし、[種類]ボックスに mm/dd(aaa) と入力
- 振替休日の日付を表示できました。

C4セルの数式は以下の通りです。
=IF(WEEKDAY(A4,1)=1,A4+1,"")
5月5日が日曜~火曜日の場合に5月6日の振替休日を表示する
- C11セルを選択して、数式バーの[関数の挿入]ボタンをクリックします。
- [関数の挿入]ダイアログボックスで、IF関数を検索します。
- [関数の引数]ダイアログボックスのそれぞれの引数に以下のように入力します。
- 論理式:WEEKDAY(A11,1)<=3
- 真の場合:A11+1
- 偽の場合:""

C11セルの数式結果は以下の通りです。
=IF(WEEKDAY(A11,1)<=3,A11+1,"")
次のセクション
INDEX
コメント
※技術的な質問はMicrosoftコミュニティで聞いてください!