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, …
B16/1/2026The value in B1.
B1-146173The - operator subtracts.
B26/12/2026The value in B2.
NETWORKDAYS(B1,B2)10NETWORKDAYS: Weekdays between two dates, inclusive.- start_date
B16/1/2026 - end_date
B26/12/2026
- start_date
SEQUENCE(NETWORKDAYS(B1,B2)){10 rows × 1 col} 1, 2, 3, 4, …SEQUENCE: A grid of sequential numbers. Spills.- rows
NETWORKDAYS(B1,B2)10
- rows
WORKDAY(B1-1,SEQUENCE(NETWORKDAYS(B1,B2))){10 rows × 1 col} 46174, 46175, 46176, 46177, …WORKDAY: Date a number of workdays away.- start_date
B1-146173 - days
SEQUENCE(NETWORKDAYS(B1,B2)){10 rows × 1 col} 1, 2, 3, 4, …
- start_date
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.
| Formula | Result | When to use it |
|---|---|---|
| =LET(d,SEQUENCE(B2-B1+1,1,B1),FILTER(d,WEEKDAY(d,2)<6))Excel only | spills 10 × 1 | List 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 fromB1skips 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
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.