概要
「成人の日」と「体育の日」は第2月曜日、「海の日」と「敬老の日」は第3月曜日になります。

日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
先月末日が日曜日の場合、第2月曜日は8日となります。また、先日末日が月曜日の場合は、第2月曜日は14日になります。つまり、第2月曜日は8日~14日までの間で変動することになります。この第2月曜日の日付をExcelで求めるには、WEEKDAY関数とDATE関数を組み合わせて利用します。
関数名 | 書式 | 説明 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
WEEKDAY | WEEKDAY(シリアル値,種類) |
|
||||||||||||||||||||||||||||||||||||
DATE | DATE(年,月,日) |
|
先月末日が月曜日の場合には最大値「14」を、火曜日以降は「14」から1ずつ減らしていった値が、第2月曜日の値となります。月曜日を基点として、火曜日、水曜日と引き算する値を1ずつ増やしていく処理には、WEEKDAY関数で対応できます。
DATE関数の「日」の引数には、「14」からWEEKDAY関数で求めた先月末日の数値を差し引くことで、第2月曜日の日付を求めることができます。
先月末日 | 月 | 火 | 水 | 木 | 金 | 土 | 日 |
---|---|---|---|---|---|---|---|
第2月曜日 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
差分 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
ここでは、「14」からの引き算で日付を求めるので、先月末日が月曜日の場合には、WEEKDAY関数で「0」を返す必要があります。よって、引数「種類」には「3」を指定します。ちなみに、先月末日の値を求めるには、DATE関数の「日」の引数を「0」にするとよいでしょう。第2月曜日の「日」の数値だけを求める場合は以下の数式で成り立ちます。
14-WEEKDAY(DATE(年,月,0),3)
先月末日
DATE関数の「日」の引数に以上の数式をあてはめると、第2月曜日の日付(シリアル値)が得られます。
=DATE(年,月,14-WEEKDAY(DATE(年,月,0),3))
一方、第3月曜日の場合は、21から先月末日の曜日の数値を差し引くことにより求めることができます。
=DATE(年,月,21-WEEKDAY(DATE(年,月,0),3))
本稿では、成人の日や体育の日を「第2月曜日」、海の日や敬老の日を「第3月曜日」として、それぞれの日付を求める方法を紹介します。
操作手順
第2月曜日を求める方法
ここでは例として、成人の日の求め方を紹介します。
- サンプルファイル「sample.xls」を開きます。
- A4セルを選択して、[関数の挿入]ボタンをクリックします。
- [関数の挿入]ダイアログボックスで、DATE関数を検索します。
- [関数の引数]ダイアログボックスでは、以下のようにDATE関数のそれぞれの引数ボックスに入力します。
- 年:年が入ったセル(A1)を選択
- 月:1
- 日:14-WEEKDAY(DATE(A1,1,0),3)



A4セル(成人の日)の数式は以下の通りです。
=DATE(A1,1,14-WEEKDAY(DATE(A1,1,0),3))
体育の日(B5セル)の場合の数式は以下のようになります。
=DATE(A1,10,14-WEEKDAY(DATE(A1,10,0),3))
第3月曜日を求める方法
ここでは例として海の日の求め方を紹介します。
- A6セルを選択して、[関数の挿入]ボタンをクリックします。
- [関数の挿入]ダイアログボックスで、DATE関数を検索します。
- [関数の引数]ダイアログボックスでは、以下のようにDATE関数のそれぞれの引数ボックスに入力します。
- 年:年が入ったセル(A1)を選択
- 月:7
- 日:21-WEEKDAY(DATE(A1,7,0),3)



A6セル(海の日)の数式は以下の通りです。
=DATE(A1,7,21-WEEKDAY(DATE(A1,7,0),3))
敬老の日(A7セル)の数式は以下の通りです。
=DATE(A1,9,21-WEEKDAY(DATE(A1,9,0),3))