Depending on Start date / formula for 1st Monday of month (of 1st FULL week)

TarkTeam4

New Member
Joined
Sep 11, 2021
Messages
8
Office Version
  1. 365
Platform
  1. Windows
Who's up for this challenge?

based on a Thursday start date...
I need ONE formula to always pick the next FIRST Monday of a month (that falls on a FULL week***)...whether it be this month or next.

Example:
if start date is Thursday November 3rd, 2022, the formula would choose Monday, November 7th, 2022.
However, if start date is Thursday, November 10th, 2022 (or 17th, or 24th), then the formula would choose Monday, December 5th, 2022.
I need ONE formula, that will factor either circumstance.

*** Note: Nov. 1st is on a Tuesday ... the first FULL week in November is the following week (11/6 - 11/12).
The same for Dec. 1st falls on a Thursday, therefore the first FULL week in December is the following week (12-4 - 12/10)
I need the Mondays that fall within the first FULL week.
 

Excel Facts

Test for Multiple Conditions in IF?
Use AND(test, test, test, test) or OR(test, test, test, ...) as the logical_test argument of IF.
There must be a simpler way of doing it than this, but...

Book1
AB
1Start DateMonday 1st full week
2Tuesday, 1 November 2022Monday, 7 November 2022
3Thursday, 3 November 2022Monday, 7 November 2022
4Thursday, 10 November 2022Monday, 5 December 2022
5Thursday, 17 November 2022Monday, 5 December 2022
6Thursday, 24 November 2022Monday, 5 December 2022
7Thursday, 1 December 2022Monday, 5 December 2022
8Friday, 9 December 2022Monday, 2 January 2023
Sheet1
Cell Formulas
RangeFormula
B2:B8B2=IF(DAY(A2)>6,EOMONTH(A2,0)+MATCH(2,WEEKDAY(EOMONTH(A2,0)+{1,2,3,4,5,6,7}),0),A2+MOD(8-WEEKDAY(A2,2),7))
 
Upvote 0
Solution
Another way:

ABCDEF
11Monday 1st full wkTEST
2Mon 1 Aug 2022Mon 8 Aug 2022MMon 1 Aug 2022
3Tue 2 Aug 2022Mon 8 Aug 2022TTue 1 Nov 2022
4Wed 3 Aug 2022Mon 8 Aug 2022WWed 1 Jun 2022
5Thu 4 Aug 2022Mon 8 Aug 2022TThu 1 Sep 2022
6Fri 5 Aug 2022Mon 8 Aug 2022FFri 1 Jul 2022
7Sat 6 Aug 2022Mon 8 Aug 2022SSat 1 Oct 2022
8Sun 7 Aug 2022Mon 8 Aug 2022SSun 1 May 2022
9Mon 8 Aug 2022Mon 8 Aug 2022
10Tue 9 Aug 2022Mon 5 Sep 2022
11Wed 10 Aug 2022Mon 5 Sep 2022
12Thu 11 Aug 2022Mon 5 Sep 2022
13Fri 12 Aug 2022Mon 5 Sep 2022
14Sat 13 Aug 2022Mon 5 Sep 2022
15Sun 14 Aug 2022Mon 5 Sep 2022
16Mon 15 Aug 2022Mon 5 Sep 2022
17Tue 16 Aug 2022Mon 5 Sep 2022
18Wed 17 Aug 2022Mon 5 Sep 2022
19Thu 18 Aug 2022Mon 5 Sep 2022
20Fri 19 Aug 2022Mon 5 Sep 2022
21Sat 20 Aug 2022Mon 5 Sep 2022
22Sun 21 Aug 2022Mon 5 Sep 2022
23Mon 22 Aug 2022Mon 5 Sep 2022
24Tue 23 Aug 2022Mon 5 Sep 2022
25Wed 24 Aug 2022Mon 5 Sep 2022
26Thu 25 Aug 2022Mon 5 Sep 2022
27Fri 26 Aug 2022Mon 5 Sep 2022
28Sat 27 Aug 2022Mon 5 Sep 2022
29Sun 28 Aug 2022Mon 5 Sep 2022
30Mon 29 Aug 2022Mon 5 Sep 2022
31Tue 30 Aug 2022Mon 5 Sep 2022
32Wed 31 Aug 2022Mon 5 Sep 2022
33Thu 1 Sep 2022Mon 5 Sep 2022
34Fri 2 Sep 2022Mon 5 Sep 2022
35Sat 3 Sep 2022Mon 5 Sep 2022
36Sun 4 Sep 2022Mon 5 Sep 2022
37Mon 5 Sep 2022Mon 5 Sep 2022
38Tue 6 Sep 2022Mon 3 Oct 2022
39Wed 7 Sep 2022Mon 3 Oct 2022
40Thu 8 Sep 2022Mon 3 Oct 2022
41Fri 9 Sep 2022Mon 3 Oct 2022
42
Sheet1
Cell Formulas
RangeFormula
B2:B41B2=SEQUENCE(40,,INDEX(Test,B1))
C2:C41C2=LET(d,8+EOMONTH(B2,-(DAY(B2)-WEEKDAY(B2,12)<2)),1+d-WEEKDAY(d-1))
Dynamic array formulas.
Named Ranges
NameRefers ToCells
Test=Sheet1!$F$2:$F$8B2
 
Upvote 0
Another way:

ABCDEF
11Monday 1st full wkTEST
2Mon 1 Aug 2022Mon 8 Aug 2022MMon 1 Aug 2022
3Tue 2 Aug 2022Mon 8 Aug 2022TTue 1 Nov 2022
4Wed 3 Aug 2022Mon 8 Aug 2022WWed 1 Jun 2022
5Thu 4 Aug 2022Mon 8 Aug 2022TThu 1 Sep 2022
6Fri 5 Aug 2022Mon 8 Aug 2022FFri 1 Jul 2022
7Sat 6 Aug 2022Mon 8 Aug 2022SSat 1 Oct 2022
8Sun 7 Aug 2022Mon 8 Aug 2022SSun 1 May 2022
9Mon 8 Aug 2022Mon 8 Aug 2022
10Tue 9 Aug 2022Mon 5 Sep 2022
11Wed 10 Aug 2022Mon 5 Sep 2022
12Thu 11 Aug 2022Mon 5 Sep 2022
13Fri 12 Aug 2022Mon 5 Sep 2022
14Sat 13 Aug 2022Mon 5 Sep 2022
15Sun 14 Aug 2022Mon 5 Sep 2022
16Mon 15 Aug 2022Mon 5 Sep 2022
17Tue 16 Aug 2022Mon 5 Sep 2022
18Wed 17 Aug 2022Mon 5 Sep 2022
19Thu 18 Aug 2022Mon 5 Sep 2022
20Fri 19 Aug 2022Mon 5 Sep 2022
21Sat 20 Aug 2022Mon 5 Sep 2022
22Sun 21 Aug 2022Mon 5 Sep 2022
23Mon 22 Aug 2022Mon 5 Sep 2022
24Tue 23 Aug 2022Mon 5 Sep 2022
25Wed 24 Aug 2022Mon 5 Sep 2022
26Thu 25 Aug 2022Mon 5 Sep 2022
27Fri 26 Aug 2022Mon 5 Sep 2022
28Sat 27 Aug 2022Mon 5 Sep 2022
29Sun 28 Aug 2022Mon 5 Sep 2022
30Mon 29 Aug 2022Mon 5 Sep 2022
31Tue 30 Aug 2022Mon 5 Sep 2022
32Wed 31 Aug 2022Mon 5 Sep 2022
33Thu 1 Sep 2022Mon 5 Sep 2022
34Fri 2 Sep 2022Mon 5 Sep 2022
35Sat 3 Sep 2022Mon 5 Sep 2022
36Sun 4 Sep 2022Mon 5 Sep 2022
37Mon 5 Sep 2022Mon 5 Sep 2022
38Tue 6 Sep 2022Mon 3 Oct 2022
39Wed 7 Sep 2022Mon 3 Oct 2022
40Thu 8 Sep 2022Mon 3 Oct 2022
41Fri 9 Sep 2022Mon 3 Oct 2022
42
Sheet1
Cell Formulas
RangeFormula
B2:B41B2=SEQUENCE(40,,INDEX(Test,B1))
C2:C41C2=LET(d,8+EOMONTH(B2,-(DAY(B2)-WEEKDAY(B2,12)<2)),1+d-WEEKDAY(d-1))
Dynamic array formulas.
Named Ranges
NameRefers ToCells
Test=Sheet1!$F$2:$F$8B2
That's much better @StephenCrump :)
 
Upvote 0
Thank you @StephenCrump and @kevin9999 !!!
I hope it wasn't too difficult trying to come up with a formula. I've tried several ways and it always picked up the next Monday, not the next FULL Monday.

I ended going with the formula @StephenCrump came up with.

Thanks again.
 
Upvote 0
The two formulae occasionally produce different results, e.g. testing using only Thursdays (your original question):

ABCDEFG
13Monday 1st full wkTEST
2Thu 2 Jun 2022Mon 6 Jun 2022Mon 6 Jun 2022MThu 4 Aug 2022
3Thu 9 Jun 2022Mon 4 Jul 2022Mon 4 Jul 2022TThu 3 Nov 2022
4Thu 16 Jun 2022Mon 4 Jul 2022Mon 4 Jul 2022WThu 2 Jun 2022
5Thu 23 Jun 2022Mon 4 Jul 2022Mon 4 Jul 2022TThu 1 Sep 2022
6Thu 30 Jun 2022Mon 4 Jul 2022Mon 4 Jul 2022FThu 7 Jul 2022
7Thu 7 Jul 2022Mon 8 Aug 2022Mon 1 Aug 2022SThu 6 Oct 2022
8Thu 14 Jul 2022Mon 8 Aug 2022Mon 1 Aug 2022SThu 5 May 2022
9Thu 21 Jul 2022Mon 8 Aug 2022Mon 1 Aug 2022
10Thu 28 Jul 2022Mon 8 Aug 2022Mon 1 Aug 2022
11Thu 4 Aug 2022Mon 8 Aug 2022Mon 8 Aug 2022
12Thu 11 Aug 2022Mon 5 Sep 2022Mon 5 Sep 2022
13Thu 18 Aug 2022Mon 5 Sep 2022Mon 5 Sep 2022
14Thu 25 Aug 2022Mon 5 Sep 2022Mon 5 Sep 2022
15Thu 1 Sep 2022Mon 5 Sep 2022Mon 5 Sep 2022
16Thu 8 Sep 2022Mon 3 Oct 2022Mon 3 Oct 2022
17Thu 15 Sep 2022Mon 3 Oct 2022Mon 3 Oct 2022
18Thu 22 Sep 2022Mon 3 Oct 2022Mon 3 Oct 2022
19Thu 29 Sep 2022Mon 3 Oct 2022Mon 3 Oct 2022
20Thu 6 Oct 2022Mon 7 Nov 2022Mon 10 Oct 2022
21Thu 13 Oct 2022Mon 7 Nov 2022Mon 7 Nov 2022
22
Sheet1
Cell Formulas
RangeFormula
B2:B21B2=SEQUENCE(20,,INDEX(Test,B1),7)
C2:C21C2=LET(d,8+EOMONTH(B2,-(DAY(B2)-WEEKDAY(B2,12)<2)),1+d-WEEKDAY(d-1))
D2:D21D2=IF(DAY(B2)>6,EOMONTH(B2,0)+MATCH(2,WEEKDAY(EOMONTH(B2,0)+{1,2,3,4,5,6,7}),0),B2+MOD(8-WEEKDAY(B2,2),7))
Dynamic array formulas.
Named Ranges
NameRefers ToCells
Test=Sheet1!$G$2:$G$8B2
Cells with Conditional Formatting
CellConditionCell FormatStop If True
D2:D21Expression=D2<>C2textNO
 
Upvote 0
One more for variety

Cell Formulas
RangeFormula
C2:C24C2=LET(d,8+EOMONTH(B2,-(DAY(B2)-WEEKDAY(B2,12)<2)),1+d-WEEKDAY(d-1))
D2:D24D2=IF(DAY(B2)>6,EOMONTH(B2,0)+MATCH(2,WEEKDAY(EOMONTH(B2,0)+{1,2,3,4,5,6,7}),0),B2+MOD(8-WEEKDAY(B2,2),7))
E2:E24E2=LET(x,WORKDAY.INTL(B2-1,1,"0111111"),IF(DAY(x)<8,x,WORKDAY.INTL(EOMONTH(B2,0),1,"0111111")))
F2:F24F2=COUNTIF(C2:E2,C2)=3
 
Upvote 0
I revised my suggestion. I posted it just so I can clear the example from this computer.

T202209a.xlsm
ABE
1Monday 1st full wk
2Wed 01-Jun-22Mon 06-Jun-22
3Sat 11-Jun-22Mon 04-Jul-22
4Tue 21-Jun-22Mon 04-Jul-22
5Fri 01-Jul-22Mon 04-Jul-22
6Mon 11-Jul-22Mon 08-Aug-22
7Thu 21-Jul-22Mon 08-Aug-22
8Sun 31-Jul-22Mon 08-Aug-22
9Wed 10-Aug-22Mon 05-Sep-22
10Sat 20-Aug-22Mon 05-Sep-22
11Tue 30-Aug-22Mon 05-Sep-22
12Fri 09-Sep-22Mon 03-Oct-22
13Mon 19-Sep-22Mon 03-Oct-22
14Thu 29-Sep-22Mon 03-Oct-22
15Sun 09-Oct-22Mon 07-Nov-22
16Wed 19-Oct-22Mon 07-Nov-22
17Tue 01-Nov-22Mon 07-Nov-22
18Thu 03-Nov-22Mon 07-Nov-22
19Thu 10-Nov-22Mon 05-Dec-22
20Fri 18-Nov-22Mon 05-Dec-22
21Thu 01-Dec-22Mon 05-Dec-22
22Thu 08-Dec-22Mon 02-Jan-23
23Sun 18-Dec-22Mon 02-Jan-23
24Wed 28-Dec-22Mon 02-Jan-23
25Sat 07-Jan-23Mon 06-Feb-23
26Tue 17-Jan-23Mon 06-Feb-23
27
5a
Cell Formulas
RangeFormula
E2:E26E2=LET(f,WORKDAY.INTL(B2-DAY(B2),1,"1111110")+1,IF(WORKDAY.INTL(B2,1,"0111111")>f,WORKDAY.INTL(EOMONTH(B2,0),1,"1111110")+1,f))
 
Upvote 0

Forum statistics

Threads
1,214,881
Messages
6,122,074
Members
449,064
Latest member
MattDRT

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