Annual Event Calculation

kyddrivers

Board Regular
Joined
Mar 22, 2013
Messages
64
Office Version
  1. 365
Platform
  1. Windows
I am building a list of events that occur on set weekends each year and trying to calculate the dates of each event moving forward.

This is the base formula I am using (where E2 is the Year) and adjusting the weeks and months as needed:
=DATE($E$2,6,1)+CHOOSE(WEEKDAY(DATE($E$2,6,1)),6,5,4,3,2,1,0)

This is working until mid-June 2024. Please help me understand why June 15 and 16 are not playing nice and what I need to do to make it work for 2024 and forward.

Thanks in advance!

Event Dates.xlsx
MNO
48
49Event DateEvent Date CalcDOW
501-Jun6/1/2024Saturday
511-Jun6/1/2024Saturday
522-Jun6/2/2024Sunday
532-Jun6/2/2024Sunday
5414-Jun6/14/2024Friday
5514-Jun6/14/2024Friday
5615-Jun6/8/2024Saturday
5715-Jun6/8/2024Saturday
5816-Jun6/9/2024Sunday
5916-Jun6/9/2024Sunday
2024
Cell Formulas
RangeFormula
N50:N51N50=DATE($E$2,6,1)+CHOOSE(WEEKDAY(DATE($E$2,6,1)),6,5,4,3,2,1,0)
O50:O59O50=WEEKDAY(N50)
N52:N53N52=DATE($E$2,6,1)+CHOOSE(WEEKDAY(DATE($E$2,6,1)),0,6,5,4,3,2,1)
N54:N55N54=DATE($E$2,6,1)+7+CHOOSE(WEEKDAY(DATE($E$2,6,1)),5,4,3,2,1,0,6)
N56:N57N56=DATE($E$2,6,1)+7+CHOOSE(WEEKDAY(DATE($E$2,6,1)),6,5,4,3,2,1,0)
N58:N59N58=DATE($E$2,6,1)+7+CHOOSE(WEEKDAY(DATE($E$2,6,1)),0,6,5,4,3,2,1)
 

Excel Facts

Create a chart in one keystroke
Select the data and press Alt+F1 to insert a default chart. You can change the default chart to any chart type
I am building a list of events that occur on set weekends each year and trying to calculate the dates of each event moving forward.
It is not all clear how your various formulae relate to the question.

Can you describe in words what you're trying to do?

Based on your description, I assume this means something like: Find the first weekend in June in any year, where first weekend means the Saturday of that weekend is the first Saturday of the month?
 
Upvote 0
It is not all clear how your various formulae relate to the question.

Can you describe in words what you're trying to do?

Based on your description, I assume this means something like: Find the first weekend in June in any year, where first weekend means the Saturday of that weekend is the first Saturday of the month?
Take 2:
I have a list of events that take place on a set weekend each year. The actual dates they take place float from year to year and are not static, like the 4th of July.

Below are some of the events and their dates in 2024. I borrowed the formula for calculating annual holiday dates and figured I could use it to calculate each year's event dates.

Event Dates.xlsx
D
4When
52-Mar
62-Mar
73-Mar
83-Mar
923-Mar
1023-Mar
1124-Mar
1224-Mar
136-Apr
146-Apr
157-Apr
167-Apr
1712-Apr
1812-Apr
1913-Apr
2013-Apr
2114-Apr
2214-Apr
2319-Apr
2419-Apr
2520-Apr
2620-Apr
2721-Apr
2821-Apr
2927-Apr
3027-Apr
3128-Apr
3228-Apr
333-May
343-May
354-May
364-May
375-May
385-May
3910-May
4010-May
4111-May
4211-May
4312-May
4412-May
4525-May
4625-May
4726-May
4826-May
4927-May
5027-May
5130-May
5230-May
5331-May
5431-May
551-Jun
561-Jun
572-Jun
582-Jun
5914-Jun
6014-Jun
6115-Jun
6215-Jun
6316-Jun
6416-Jun
2024


I hope this better explains what I am trying to accomplish.

Thanks!
 
Upvote 0
Take 2:
I have a list of events that take place on a set weekend each year. The actual dates they take place float from year to year and are not static, like the 4th of July.

Below are some of the events and their dates in 2024. I borrowed the formula for calculating annual holiday dates and figured I could use it to calculate each year's event dates.

Event Dates.xlsx
D
4When
52-Mar
62-Mar
73-Mar
83-Mar
923-Mar
1023-Mar
1124-Mar
1224-Mar
136-Apr
146-Apr
157-Apr
167-Apr
1712-Apr
1812-Apr
1913-Apr
2013-Apr
2114-Apr
2214-Apr
2319-Apr
2419-Apr
2520-Apr
2620-Apr
2721-Apr
2821-Apr
2927-Apr
3027-Apr
3128-Apr
3228-Apr
333-May
343-May
354-May
364-May
375-May
385-May
3910-May
4010-May
4111-May
4211-May
4312-May
4412-May
4525-May
4625-May
4726-May
4826-May
4927-May
5027-May
5130-May
5230-May
5331-May
5431-May
551-Jun
561-Jun
572-Jun
582-Jun
5914-Jun
6014-Jun
6115-Jun
6215-Jun
6316-Jun
6416-Jun
2024


I hope this better explains what I am trying to accomplish.

Thanks!
For the first 4 events on the list, using the =DATE($E$2,3,1)+CHOOSE(WEEKDAY(DATE($E$2,3,1)),6,5,4,3,2,1,0)

I can calculate that their dates in 2025 will be March 1 & 2.

Event Dates.xlsx
E
22025
3
4Date
53/1/2025
63/1/2025
73/2/2025
83/2/2025
2025
Cell Formulas
RangeFormula
E5:E6E5=DATE($E$2,3,1)+CHOOSE(WEEKDAY(DATE($E$2,3,1)),6,5,4,3,2,1,0)
E7:E8E7=DATE($E$2,3,1)+CHOOSE(WEEKDAY(DATE($E$2,3,1)),0,6,5,4,3,2,1)


I want to be able to do this for all of the event dates annually for 2025, 2026, 2027 etc.
 
Upvote 0
Sorry for the late reply. I didn't get a message when you posted back.

Here's a general solution to determining the Nth occurrence of a particular day in a particular year/month.

ABCDEFGH
1YearMonthDayOccurrenceRequired dateDays
220253Sat1Sat 1 Mar 2025Sun1
3Mon2
4Tue3
5Wed4
6Thu5
7Fri6
8Sat7
9
Sheet1
Cell Formulas
RangeFormula
E2E2=LET(d,DATE(A2,B2,7*D2+1)-WEEKDAY(DATE(A2,B2,8-VLOOKUP(C2,Days,2,))),IF(MONTH(d)<>B2,"n/a",d))
Named Ranges
NameRefers ToCells
Days=Sheet1!$G$2:$H$8E2
 
Upvote 0

Forum statistics

Threads
1,220,965
Messages
6,157,119
Members
451,399
Latest member
alchavar

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top