Return first Monday in April from one date and first Monday in current year April if another is blank

SaraWitch

Active Member
Joined
Sep 29, 2015
Messages
322
Office Version
  1. 365
Platform
  1. Windows
Hello peeps,

I call upon your expertise again!

I have a start date in A2 and an end date in B2. I want a formula in C2 to return the first Monday in April before the A2 date. I also want a formula in D2 (E2 from example below) to return the date of the first Monday in April of the current year if no date is entered in B2 but to return the date in B2 if one is entered.

For example:
Auto move row.xlsm
ABCDE
1Start DateEnd DateFirst Monday in April before Start DateI can get first Monday in month, but not April'sFirst April Monday in Current Year if B2 empty or B2 date
211/11/2023Should be 03/04/202306/11/2023Should be 03/04/2023
310/10/2021Should be 05/04/202104/10/2021Should be 03/04/2023
403/01/2024Should be 03/04/202301/01/2024Should be 03/04/2023
512/12/202210/10/2023Should be 04/04/202205/12/2022Should be 10/10/2023
604/04/2022Should be 04/04/202204/04/2022Should be 03/04/2023
703/04/2022Should be 05/04/202104/04/2022Should be 03/04/2023
802/02/202304/04/2023Should be 03/04/202306/02/2023Should be 04/04/2023
929/09/202203/01/2024Should be 04/04/202205/09/2022Should be 03/01/2024
1029/09/2022Should be 04/04/202205/09/2022Should be 03/04/2023
Sheet3
Cell Formulas
RangeFormula
D2:D10D2=IF(A2=0,"",A2-DAY(A2)+8-WEEKDAY(A2-DAY(A2)+6))
Cells with Data Validation
CellAllowCriteria
A1:E10Any value


I can return the first Monday of a date's month (column D), but not April's. I've also tried breaking down the dates into years first, but I'm ending up with more columns than I feel I need.

Any help would be gratefully received. :)
 
Yes, the problem is with the first few days of April if they fall before a Monday and, therefore, they will be in the previous fiscal year. So, the fiscal date will actually be different each year.

I have evaluated the formula, which is not something I do often, so excuse my inexperience, but could it be this bit?
1704740580159.png
 
Upvote 0
Sorry, our messages crossed - just checking your formula now...
 
Upvote 0
I've been trying to amend the second formula (column D), but with no joy 😆, so, shall wait to hear from you. Thanks everso, Dave!
 
Upvote 0
Try the following
Check the logic very carefully since the challenge seemed to evolve.

T202401a.xlsm
ABCD
1Start DateEnd DateFormula Fiscal Year Start Date (first Monday in April)Formula Fiscal Year End Date (first Monday in April)
202-Apr-23Mon 04-Apr-22Mon 03-Apr-23
303-Apr-22Mon 05-Apr-21Mon 03-Apr-23
403-Apr-2204-Apr-22Mon 05-Apr-21Mon 04-Apr-22
502-Apr-22Mon 05-Apr-21Mon 03-Apr-23
602-Apr-2203-Apr-22Mon 05-Apr-21Mon 05-Apr-21
702-Apr-2203-Apr-23Mon 05-Apr-21Mon 03-Apr-23
801-Apr-25Mon 01-Apr-24Mon 03-Apr-23
901-Apr-2508-Apr-25Mon 01-Apr-24Mon 07-Apr-25
1b_4
Cell Formulas
RangeFormula
C2:C9C2=LET(yc,WORKDAY.INTL(DATE(YEAR(A2),4,0),1,"0111111"),yp,WORKDAY.INTL(DATE(YEAR(A2)-1,4,0),1,"0111111"),IF(A2<=yc,yp,yc))
D2:D9D2=LET(yc,WORKDAY.INTL(DATE(2023,4,0),1,"0111111"),yx,WORKDAY.INTL(DATE(YEAR(A2)-1,4,0),1,"0111111"),yp,WORKDAY.INTL(DATE(YEAR(B2),4,0),1,"0111111"),IF(B2<1,yc,IF(AND(B2>=yx,B2<yp),yx,yp)))
 
Upvote 0
Solution

Excel Facts

Format cells as date
Select range and press Ctrl+Shift+3 to format cells as date. (Shift 3 is the # sign which sort of looks like a small calendar).
The copy shown in post #23 should be as follows


T202401a.xlsm
ABHI
1Start DateEnd Date
202-Apr-23Mon 04-04-22Mon 03-04-23
303-Apr-22Mon 05-04-21Mon 03-04-23
403-Apr-2204-Apr-22Mon 05-04-21Mon 04-04-22
502-Apr-22Mon 05-04-21Mon 03-04-23
602-Apr-2203-Apr-22Mon 05-04-21Mon 05-04-21
702-Apr-2203-Apr-23Mon 05-04-21Mon 03-04-23
801-Apr-25Mon 01-04-24Mon 03-04-23
901-Apr-2508-Apr-25Mon 01-04-24Mon 07-04-25
1b_4
Cell Formulas
RangeFormula
H2:H9H2=StartD(A2)
I2:I9I2=EndD(B2)
Lambda Functions
NameFormula
EndD=LAMBDA(EndDateCell,LET(s,EndDateCell,b,{43927;44291;44655;45019;45383;45754;46118;46482;46846},IF(s,LOOKUP(s,b,b),45019)))
StartD=LAMBDA(Start,LET(s,Start,b,{43927;44291;44655;45019;45383;45754;46118;46482;46846},LOOKUP(s,b,b)))
 
Upvote 0
Oh my goodness, Dave!!

Your solution in post #21 worked perfectly!

I shall also explore your other solutions, that are great learning opportunities (I'd never heard of LAMBDA, which looks great too!). I have a LOOKUP for the fiscal year elsewhere which I was considering for the fiscal date, but this is amazing!

I do thank you for the time you have spent on this, Dave - I am (still!) in awe and very grateful 🙏🙇‍♀️😍
 
Upvote 0
T202401a.xlsm
ABCDEFGHIJKLMN
1 -- V1 with Lookup table -- -- V2 without Lookup table -- -- V3 with Lambda --YE startYE EndText
2Start DateEnd DateFor Column A, Day 1 of YE For Column B, Day 1 of: if blank Current YE if Date of that dateMon Apr 6, 2020Sun Apr 4, 2021Mon Apr 6, 2020 to Sun Apr 4, 2021
302-Apr-2304-Apr-2203-Apr-2304-Apr-2203-Apr-2304-Apr-2203-Apr-23Mon Apr 5, 2021Sun Apr 3, 2022Mon Apr 5, 2021 to Sun Apr 3, 2022
403-Apr-2205-Apr-2103-Apr-2305-Apr-2103-Apr-2305-Apr-2103-Apr-23Mon Apr 4, 2022Sun Apr 2, 2023Mon Apr 4, 2022 to Sun Apr 2, 2023
503-Apr-2204-Apr-2205-Apr-2104-Apr-2205-Apr-2104-Apr-2205-Apr-2104-Apr-22Mon Apr 3, 2023Sun Mar 31, 2024Mon Apr 3, 2023 to Sun Mar 31, 2024
602-Apr-2205-Apr-2103-Apr-2305-Apr-2103-Apr-2305-Apr-2103-Apr-23Mon Apr 1, 2024Sun Apr 6, 2025Mon Apr 1, 2024 to Sun Apr 6, 2025
702-Apr-2203-Apr-2205-Apr-2105-Apr-2105-Apr-2105-Apr-2105-Apr-2105-Apr-21Mon Apr 7, 2025Sun Apr 5, 2026Mon Apr 7, 2025 to Sun Apr 5, 2026
802-Apr-2203-Apr-2305-Apr-2103-Apr-2305-Apr-2103-Apr-2305-Apr-2103-Apr-23Mon Apr 6, 2026Sun Apr 4, 2027Mon Apr 6, 2026 to Sun Apr 4, 2027
901-Apr-2501-Apr-2403-Apr-2301-Apr-2403-Apr-2301-Apr-2403-Apr-23Mon Apr 5, 2027Sun Apr 2, 2028Mon Apr 5, 2027 to Sun Apr 2, 2028
1001-Apr-2508-Apr-2501-Apr-2407-Apr-2501-Apr-2407-Apr-2501-Apr-2407-Apr-25Mon Apr 3, 2028Sun Apr 1, 2029Mon Apr 3, 2028 to Sun Apr 1, 2029
11Mon Apr 2, 2029Sun Mar 31, 2030Mon Apr 2, 2029 to Sun Mar 31, 2030
12Mon Apr 1, 2030Sun Apr 6, 2031Mon Apr 1, 2030 to Sun Apr 6, 2031
13Mon Apr 7, 2031Sun Apr 4, 2032Mon Apr 7, 2031 to Sun Apr 4, 2032
14Mon Apr 5, 2032Sun Apr 3, 2033Mon Apr 5, 2032 to Sun Apr 3, 2033
15Mon Apr 4, 2033Sun Apr 2, 2034Mon Apr 4, 2033 to Sun Apr 2, 2034
16Mon Apr 3, 2034Sun Apr 1, 2035Mon Apr 3, 2034 to Sun Apr 1, 2035
17Mon Apr 2, 2035Sun Apr 6, 2036Mon Apr 2, 2035 to Sun Apr 6, 2036
18Mon Apr 7, 2036Sun Apr 5, 2037Mon Apr 7, 2036 to Sun Apr 5, 2037
19Mon Apr 6, 2037Sun Apr 4, 2038Mon Apr 6, 2037 to Sun Apr 4, 2038
20Mon Apr 5, 2038Sun Apr 3, 2039Mon Apr 5, 2038 to Sun Apr 3, 2039
21Mon Apr 4, 2039Sun Apr 1, 2040Mon Apr 4, 2039 to Sun Apr 1, 2040
22Mon Apr 2, 2040Sun Mar 31, 2041Mon Apr 2, 2040 to Sun Mar 31, 2041
23
1bb
Cell Formulas
RangeFormula
K2:K22K2=WORKDAY.INTL(DATE(2020+SEQUENCE(21,,0,1),4,0),1,"0111111")
L2:L22L2=WORKDAY.INTL(DATE(2020+SEQUENCE(21,,1,1),4,0),1,"0111111")-1
C3:C10C3=LOOKUP(A3,YE_Day1)
D3:D10D3=IF(B3,LOOKUP(B3,YE_Day1),LOOKUP(TODAY(),YE_Day1))
E3E3=LET(YE_Day1,WORKDAY.INTL(DATE(2020+SEQUENCE(21,,0,1),4,0),1,"0111111"),LOOKUP(A3,YE_Day1))
F3F3=LET(YE_Day1,WORKDAY.INTL(DATE(2020+SEQUENCE(21,,0,1),4,0),1,"0111111"),IF(B3,LOOKUP(B3,YE_Day1),LOOKUP(TODAY(),YE_Day1)))
G3:G10G3=FYE_Day1(A3)
H3:H10H3=FYE_Day1_CurrentYEor(B3)
E4:E10E4=LET(x,WORKDAY.INTL(DATE(2020+SEQUENCE(21,,0,1),4,0),1,"0111111"),LOOKUP(A4,x))
F4:F10F4=LET(YE_Day1,WORKDAY.INTL(DATE(2020+SEQUENCE(21,,0,1),4,0),1,"0111111"),IF(B4="",LOOKUP(TODAY(),YE_Day1),LOOKUP(B4,YE_Day1)))
N2:N22N2=TEXT(K2,"ddd mmm d, yyyy")&" to "&TEXT(L2,"ddd mmm d, yyyy")
Dynamic array formulas.
Named Ranges
NameRefers ToCells
YE_Day1='1bb'!$K$2:$K$22C3:D10, N2
Lambda Functions
NameFormula
FYE_Day1=LAMBDA(cellrefDate,LET(d,cellrefDate,YE_Day1,WORKDAY.INTL(DATE(2020+SEQUENCE(21,,0,1),4,0),1,"0111111"),LOOKUP(d,YE_Day1)))
FYE_Day1_CurrentYEor=LAMBDA(cellrefDate,LET(d,cellrefDate,YE_Day1,WORKDAY.INTL(DATE(2020+SEQUENCE(21,,0,1),4,0),1,"0111111"),IF(d,LOOKUP('1bb'!XFA1,YE_Day1),LOOKUP(TODAY(),YE_Day1))))
 
Upvote 0
Wow! This is incredible and has really inspired me to explore Excel further (I may even look at some advanced training!). I bow to your prowess, Dave! ☺️
 
Upvote 0

Forum statistics

Threads
1,216,124
Messages
6,128,997
Members
449,480
Latest member
yesitisasport

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