How to find the first Monday of the month in Excel
Formula (Excel and Google Sheets)
=LET(first,EOMONTH(A2,-1)+1,first+MOD(2-WEEKDAY(first),7))Take the first of the month and add the days to the next Monday: =LET(first,EOMONTH(A2,-1)+1,first+MOD(2-WEEKDAY(first),7)).
- Result on the example
- one result per row in
B2, filled down toB7 - Works in
- Excel 2021, 2024 and Microsoft 365
- Google Sheets
- Same formula
See it work
The formula is already in B2, filled down to B7. Change any input and the result updates, or edit the formula to experiment.
How it works
LET names the first day of the month. WEEKDAY returns 2 for Monday, so MOD(2-WEEKDAY(first),7) is the number of days from the 1st to the next Monday: 0 when the month starts on a Monday, 6 when it starts on a Tuesday.
=LET(first,EOMONTH(A2,-1)+1,first+MOD(2-WEEKDAY(first),7))Result46027
first46023A name defined in LET, or a named range.
A21/20/2026The value in A2.
-1-1Makes the value negative.
EOMONTH(A2,-1)12/31/2025 (46022)EOMONTH: Last day of the month, months away.- start_date
A21/20/2026 - months
-1-1
- start_date
EOMONTH(A2,-1)+146023The + operator adds.
WEEKDAY(first)5WEEKDAY: Day of the week as a number; Sunday = 1 by default.- serial_number
first46023
- serial_number
2-WEEKDAY(first)-3The - operator subtracts.
MOD(2-WEEKDAY(first),7)4MOD: Remainder after division.- number
2-WEEKDAY(first)-3 - divisor
7
- number
first+MOD(2-WEEKDAY(first),7)46027The + operator adds.
LET(first,EOMONTH(A2,-1)+1,first+MOD(2-WEEKDAY(first),7))46027LET: Names values inside a formula.- name1
first46023 - value1
EOMONTH(A2,-1)+146023 - name2, value2
first+MOD(2-WEEKDAY(first),7)46027
- name1
In Google Sheets
The same formula works in Google Sheets: =LET(first,EOMONTH(A2,-1)+1,first+MOD(2-WEEKDAY(first),7)). We ran it in Google Sheets mode on the same data and it returns the same results.
Other ways to do it
Each one was run on the same example sheet.
| Formula | Result | When to use it |
|---|---|---|
| =DATE(YEAR(A2),MONTH(A2),8)-WEEKDAY(DATE(YEAR(A2),MONTH(A2),6)) | 1/5/2026, 2/2/2026, 3/2/2026… | A classic one-liner that works in every version: the 8th minus the weekday number of the 6th always lands on the first Monday. |
| =EOMONTH(A2,-1)+1+MOD(2-WEEKDAY(EOMONTH(A2,-1)+1),7) | 1/5/2026, 2/2/2026, 3/2/2026… | The same logic without LET, for Excel 2019 and earlier. |
Common mistakes
- MOD keeps the offset between 0 and 6. Without it,
2-WEEKDAY(first)goes negative and lands in the previous month. - For another weekday, change the 2: 1 is Sunday, 3 Tuesday, up to 7 for Saturday.
Try it yourself
Same data, empty answer cell. Your formula is graded instantly, then re-checked on changed data, so a typed-in number won't pass.
Find the first Monday of the month
B2, return the first Monday of the month of the date in A2, and fill down to B7.Questions
How do I get the second or third Monday?
Add 7 days per week: +7 for the second Monday, +14 for the third.
How do I get the first Monday of next month?
Start from EOMONTH(A2,0)+1 instead of EOMONTH(A2,-1)+1.
Checked by running on 2026-10-30: every formula and result on this page was calculated by the Spreadsheet Practice formula engine, in both Excel and Google Sheets modes.