Spreadsheet Practice

How to list only weekdays between two dates in Excel

Excel formula

=WORKDAY(B1-1,SEQUENCE(NETWORKDAYS(B1,B2)))

Count the weekdays with NETWORKDAYS and step through them with WORKDAY: =WORKDAY(B1-1,SEQUENCE(NETWORKDAYS(B1,B2))).

Result on the example
a 10-row list that spills from D2 in D2
Works in
Excel 2021, 2024 and Microsoft 365
Google Sheets
Different formula, see below

See it work

The formula is already in D2. Change any input and the result updates, or edit the formula to experiment.

How it works

NETWORKDAYS counts the weekdays in the period, 10 here. SEQUENCE turns that into 1 to 10, and WORKDAY returns the 1st, 2nd, … 10th working day after the day before the start, which skips every Saturday and Sunday. Add a holiday range as WORKDAY's third argument (and NETWORKDAYS's) to skip holidays too.

=WORKDAY(B1-1,SEQUENCE(NETWORKDAYS(B1,B2)))

Result{10 rows × 1 col} 46174, 46175, 46176, 46177, …

  1. B16/1/2026

    The value in B1.

  2. B1-146173

    The - operator subtracts.

  3. B26/12/2026

    The value in B2.

  4. NETWORKDAYS(B1,B2)10

    NETWORKDAYS: Weekdays between two dates, inclusive.

    • start_dateB16/1/2026
    • end_dateB26/12/2026
  5. SEQUENCE(NETWORKDAYS(B1,B2)){10 rows × 1 col} 1, 2, 3, 4, …

    SEQUENCE: A grid of sequential numbers. Spills.

    • rowsNETWORKDAYS(B1,B2)10
  6. WORKDAY(B1-1,SEQUENCE(NETWORKDAYS(B1,B2))){10 rows × 1 col} 46174, 46175, 46176, 46177, …

    WORKDAY: Date a number of workdays away.

    • start_dateB1-146173
    • daysSEQUENCE(NETWORKDAYS(B1,B2)){10 rows × 1 col} 1, 2, 3, 4, …

In Google Sheets

Google Sheets needs a different formula: =ARRAYFORMULA(WORKDAY(B1-1,SEQUENCE(NETWORKDAYS(B1,B2)))). On the same data it gives the same result. Here it is running in Google Sheets mode.

Other ways to do it

Each one was run on the same example sheet.

FormulaResultWhen to use it
=LET(d,SEQUENCE(B2-B1+1,1,B1),FILTER(d,WEEKDAY(d,2)<6))Excel onlyspills 10 × 1List every date, then keep those whose weekday number is 1 to 5 (Monday to Friday). Easy to adapt to other days, such as only Tuesdays.

Common mistakes

  • Start WORKDAY from B1-1, the day before. Starting from B1 skips the start date itself.
  • The holiday list must be real dates. Text that looks like a date is ignored, so the holiday stays in the list.

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.

List only weekdays between two dates

In D2, list every Monday-to-Friday date from B1 to B2, one per row.

Questions

How do I skip holidays too?

Give both functions the holiday range: =WORKDAY(B1-1,SEQUENCE(NETWORKDAYS(B1,B2,F2:F5)),F2:F5).

How do I list only Mondays?

Filter every date by weekday: =LET(d,SEQUENCE(B2-B1+1,1,B1),FILTER(d,WEEKDAY(d,2)=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.