Spreadsheet Practice

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 to B7
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

  1. first46023

    A name defined in LET, or a named range.

  2. A21/20/2026

    The value in A2.

  3. -1-1

    Makes the value negative.

  4. EOMONTH(A2,-1)12/31/2025 (46022)

    EOMONTH: Last day of the month, months away.

    • start_dateA21/20/2026
    • months-1-1
  5. EOMONTH(A2,-1)+146023

    The + operator adds.

  6. WEEKDAY(first)5

    WEEKDAY: Day of the week as a number; Sunday = 1 by default.

    • serial_numberfirst46023
  7. 2-WEEKDAY(first)-3

    The - operator subtracts.

  8. MOD(2-WEEKDAY(first),7)4

    MOD: Remainder after division.

    • number2-WEEKDAY(first)-3
    • divisor7
  9. first+MOD(2-WEEKDAY(first),7)46027

    The + operator adds.

  10. LET(first,EOMONTH(A2,-1)+1,first+MOD(2-WEEKDAY(first),7))46027

    LET: Names values inside a formula.

    • name1first46023
    • value1EOMONTH(A2,-1)+146023
    • name2, value2first+MOD(2-WEEKDAY(first),7)46027

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.

FormulaResultWhen 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

In 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.