第 n ○曜日の日付は、=DATE(年,月,1)+MOD(曜日の番号-WEEKDAY(DATE(年,月,1)),7)+(n-1)*7 で求めます。その月の 1 日から数えて最初の○曜日を出し、そこに 7 日ずつ足していく式です。曜日の番号は、日曜が 1、月曜が 2 …土曜が 7 です。
この記事では、2026 年の成人の日(1 月の第 2 月曜日)や敬老の日(9 月の第 3 月曜日)を例に、第 n 曜日の日付の出し方と、反対に日付が第何曜日かを調べる式を、実際の Excel で確かめた結果で説明します。
第n曜日の日付を求める式
=DATE(年,月,1) + MOD(曜日の番号-WEEKDAY(DATE(年,月,1)),7) + (第n-1)*7
| 部品 | 意味 |
|---|---|
| DATE(年,月,1) | その月の 1 日の日付 |
| WEEKDAY(DATE(年,月,1)) | 1 日の曜日の番号(日曜=1、月曜=2、火曜=3、水曜=4、木曜=5、金曜=6、土曜=7) |
| MOD(曜日の番号-…,7) | 1 日から、最初の○曜日まで何日あるか(0〜6) |
| (第n-1)*7 | 第 2 なら 7 日、第 3 なら 14 日を足す |
MOD は割り算の余りを出す関数です。引き算がマイナスになっても、7 で割った余りは 0〜6 になるので、「次の○曜日まで何日か」がいつも正しく出ます。
1. 年・月・第n・曜日から日付を出す
A 列に年、B 列に月、C 列に第 n、D 列に曜日の番号(月曜なら 2)を入れておきます。I2 に式を入れて、下へコピーします。
=DATE(A2,B2,1)+MOD(D2-WEEKDAY(DATE(A2,B2,1)),7)+(C2-1)*7

2026 年 1 月の第 2 月曜日(成人の日)は 2026/1/12、7 月の第 3 月曜日(海の日)は 2026/7/20、9 月の第 3 月曜日(敬老の日)は 2026/9/21、10 月の第 2 月曜日(スポーツの日)は 2026/10/12 になりました。2026 年の祝日の日付と合っています。
曜日の番号を変えれば、月曜以外も出せます。5 月の第 2 日曜日(母の日)は 2026/5/10、11 月の第 4 木曜日は 2026/11/26 でした。第 2 火曜日なら、第 n を 2、曜日の番号を 3 にします。
2. 日付がその月の第何曜日かを出す
反対に、日付から「その月の何回目の曜日か」を出します。日(DAY)から 1 を引いて 7 で割り、小数を切り捨てて 1 を足します。ここでは 1 で出した日付(I2 から下)を使います。
=INT((DAY(I2)-1)/7)+1

上から 2・3・3・2・2・4 になり、C 列の第 n と同じ数字が出ました。1〜7 日は第 1、8〜14 日は第 2、15〜21 日は第 3 …と、日だけで決まります。
これは「その月で何回目の○曜日か」です。カレンダーの何段目か(月の第何週か)とは違う数字になることがあります。週の数え方は WEEKNUM関数の使い方で説明しています。
3. 月の最後の○曜日の日付を出す
「最終金曜日」のように、月の最後の○曜日を出す式です。DATE(年,月+1,0) はその月の末日で、そこから○曜日まで戻ります。
=DATE(A2,B2+1,0)-MOD(WEEKDAY(DATE(A2,B2+1,0))-D2,7)

2026 年 1 月の最後の月曜日は 2026/1/26、5 月の最後の日曜日は 2026/5/31 でした。11 月の最後の木曜日は 2026/11/26 で、1 で出した第 4 木曜日と同じ日です。
最後の○曜日は、月によって第 4 のことも第 5 のこともあります。「最後」と決まっているときは、この式のほうがまちがいがありません。
4. 「第2月曜日」のように文字で表示する
2 の式に、「第」の文字と、TEXT 関数で出した曜日をつなげます。"aaaa" は「月曜日」のように曜日を出す表示形式です。
="第"&INT((DAY(I2)-1)/7)+1&TEXT(I2,"aaaa")

2026/1/12 は「第2月曜日」、2026/9/21 は「第3月曜日」、2026/5/10 は「第2日曜日」、2026/11/26 は「第4木曜日」と表示されました。予定表の日付の横に入れておくと、ごみの日や定例会議の確認に使えます。
【実機で検証】第n曜日の計算でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| 成人の日(2026 年 1 月 第 2 月曜日) | =DATE(2026,1,1)+MOD(2-WEEKDAY(DATE(2026,1,1)),7)+(2-1)*7 | 2026/1/12 |
| 敬老の日(2026 年 9 月 第 3 月曜日) | =DATE(2026,9,1)+MOD(2-WEEKDAY(DATE(2026,9,1)),7)+(3-1)*7 | 2026/9/21 |
| 1 日が月曜日の月(2026 年 6 月 第 1 月曜日) | =DATE(2026,6,1)+MOD(2-WEEKDAY(DATE(2026,6,1)),7)+(1-1)*7 | 2026/6/1 |
| 第 5 月曜日がない月(2026 年 2 月) | =DATE(2026,2,1)+MOD(2-WEEKDAY(DATE(2026,2,1)),7)+(5-1)*7 | 2026/3/2 |
| 上の日付(B7)の月が 2 月でなければ「なし」 | =IF(MONTH(B7)<>2,"なし",B7) | なし |
| 月曜のつもりで番号を 1 にした | =DATE(2026,1,1)+MOD(1-WEEKDAY(DATE(2026,1,1)),7)+(2-1)*7 | 2026/1/11 |
年・月・第 n・曜日の番号を数字で直接入れても、成人の日は 2026/1/12、敬老の日は 2026/9/21 になりました。1 日がちょうど月曜日の 2026 年 6 月は、第 1 月曜日が 2026/6/1 で、1 日そのものが出ます。
第 5 月曜日がない 2026 年 2 月で第 5 を指定すると、2026/3/2 と翌月の日付になりました。エラーにはならないので気づきにくい所です。IF と MONTH で「出た日付の月が、指定した月と違ったら『なし』」とすると、なし と表示できます。
月曜日のつもりで曜日の番号を 1 にすると 2026/1/11 になり、日曜日の日付が出ました。この式の番号は、日曜が 1、月曜が 2 です。
よくある質問
ハッピーマンデーの祝日の日付を毎年出すには?
年のセルを書き換えるだけで、その年の第 n 月曜日が出ます。成人の日は 1 月の第 2、海の日は 7 月の第 3、敬老の日は 9 月の第 3、スポーツの日は 10 月の第 2 月曜日です(2026 年時点の決まり)。祝日に色を付ける方法は 祝日に色を付ける方法で説明しています。
曜日の番号ではなく「月」と入れて計算したいです。
MATCH(曜日のセル,{"日","月","火","水","木","金","土"},0) で番号に変えられます。式の「曜日の番号」の所を、この MATCH に置きかえます。曜日の番号の決まりは WEEKDAY関数の使い方で説明しています。
その週の月曜日の日付を出したいです。
日付からその週の月曜日を出す式は 日付からその週の月曜日を求める方法で説明しています。
