The WEEKDAY and WORKDAY functions in Excel
WEEKDAY turns a date into a number from 1 to 7. With the second argument 2, Monday is 1 and Sunday is 7, so 6 and 7 are the weekend.
WORKDAY moves a date forward (or backward, with a negative number) by a number of working days, skipping Saturdays and Sundays and, if you list them, holidays.
Syntax
=WEEKDAY(serial_number, [return_type])
| Argument | What it means |
|---|---|
| serial_number | The date to look at. |
| return_typeoptional | 1 or left out: Sunday = 1 to Saturday = 7. 2: Monday = 1 to Sunday = 7. 3: Monday = 0 to Sunday = 6. |
Examples
1. Monday-first weekday number
| A | B | |
|---|---|---|
| 1 | Delivery | |
| 2 | Date | 2026-03-07 |
| 3 | Weekday | 6 |
7 March 2026 is a Saturday, the sixth day when Monday is 1.
2. Default numbering starts on Sunday
| A | B | |
|---|---|---|
| 1 | Delivery | |
| 2 | Date | 2026-03-07 |
| 3 | Weekday | 7 |
Without the second argument Sunday is 1, so Saturday is 7.
3. Weekend or weekday?
| A | B | |
|---|---|---|
| 1 | Delivery | |
| 2 | Date | 2026-03-07 |
| 3 | Type | Weekend |
With Monday = 1, anything above 5 is a Saturday or Sunday.
4. Ten working days later
| A | B | |
|---|---|---|
| 1 | Task | |
| 2 | Start | 2026-03-02 |
| 3 | Finish day | 16 |
WORKDAY skips two weekends: Monday 2 March plus ten working days is Monday 16 March. DAY extracts the day number.
Common mistakes
Forgetting that the default starts on Sunday.
=WEEKDAY(B2)>5is not a weekend test.Fix: Add the second argument 2 so Monday is 1.
Showing WORKDAY as a number. The result looks like 46097.
Fix: Format the cell as a date. Dates are stored as numbers.
Frequently asked questions
How do I skip public holidays?
Give WORKDAY a range of holiday dates as its third argument. NETWORKDAYS accepts the same list when you count working days.
What if my weekend is Friday and Saturday?
Use WORKDAY.INTL and NETWORKDAYS.INTL, which let you choose the weekend days.
Related functions
- NETWORKDAYSNETWORKDAYS counts the working days between two dates, Monday to Friday, optionally skipping holidays.
- EOMONTHEOMONTH returns the last day of a month; EDATE the same day a number of months later or earlier.
- DATEDIFDATEDIF counts complete years, months or days between two dates, ideal for ages and service length.