WEEKDAY in Excel: Find Weekends and Day Names
By ExcelReady TeamUpdated 6 min read
The short answer
The Excel WEEKDAY function returns the day of the week as a number: =WEEKDAY(date) gives 1 for Sunday through 7 for Saturday. Add a return type of 2, as in =WEEKDAY(date,2), to make Monday 1 and Sunday 7. Then =WEEKDAY(date,2)>5 is TRUE only for Saturdays and Sundays.
Key takeaways
- WEEKDAY(date) numbers the days 1 (Sunday) to 7 (Saturday) unless you add a return type.
- With return type 2, Monday is 1 and Sunday is 7, so weekends are the only days above 5.
- WEEKDAY returns a number; for a day name like Thursday, use TEXT(date,"dddd").
- =B2-WEEKDAY(B2,2)+1 gives the Monday of that week.
- An empty cell counts as day 0, which WEEKDAY reports as a Saturday, so skip blanks first.
On this page+
- How does the Excel WEEKDAY function work?
- Which return type should you use?
- How to check if a date is a weekend
- How to show the day name instead of a number
- How to find the start of the week or the next Monday
- How to highlight weekends with conditional formatting
- What are the common WEEKDAY mistakes?
- Practise it
The Excel WEEKDAY function tells you which day of the week a date falls on, as a number from 1 to 7. That small number lets you flag weekend deliveries, push renewals to Monday, group dates by week and highlight weekends in a schedule. This guide covers the syntax, the return types and the formulas built on top of it.
How does the Excel WEEKDAY function work?#
WEEKDAY takes a date and returns a number for its day of the week:
=WEEKDAY(serial_number, [return_type])- serial_number is the date: a cell such as B2, or a DATE formula such as
DATE(2025,3,15). - return_type is optional. It sets which day counts as 1. Leave it out and Sunday is 1, Monday is 2, and so on to Saturday, which is 7.
Excel stores dates as serial numbers, so WEEKDAY works on any real date. If the date is text, you get #VALUE!. For how dates are stored, see DATE, YEAR, MONTH and DAY in Excel.
Which return type should you use?#
Return type 2 is the most useful for work, because it starts the week on Monday:
| Return type | Numbers | Notes |
|---|---|---|
| 1 or omitted | Sunday = 1 to Saturday = 7 | The default |
| 2 | Monday = 1 to Sunday = 7 | Weekends are 6 and 7 |
| 3 | Monday = 0 to Sunday = 6 | Starts at zero |
| 11 to 17 | Monday = 1 (11), Tuesday = 1 (12), and so on to Sunday = 1 (17) | Excel 2010 and later |
Here are some renewal dates with both numberings:
| Client | Renewal Date | =WEEKDAY(B2) | =WEEKDAY(B2,2) | Day |
|---|---|---|---|---|
| Northwind Labs | Feb 29, 2024 | 5 | 4 | Thursday |
| Bluefin Media | Mar 15, 2025 | 7 | 6 | Saturday |
| Cedar Health | Nov 6, 2024 | 4 | 3 | Wednesday |
| Orbit Logistics | Aug 23, 2026 | 1 | 7 | Sunday |
| Harbor Foods | Jan 3, 2025 | 6 | 5 | Friday |
| Summit Legal | Nov 29, 2025 | 7 | 6 | Saturday |
Don't mix up WEEKDAY and DAY. =DAY(B2) returns the day of the month (15 for Mar 15). =WEEKDAY(B2) returns the day
of the week.
How to check if a date is a weekend#
With return type 2, Saturday is 6 and Sunday is 7, so weekends are the only days above 5:
=WEEKDAY(B2,2)>5This returns TRUE for Bluefin, Orbit and Summit, and FALSE for the rest. For a label, put it inside IF:
=IF(WEEKDAY(B2,2)>5,"Weekend","Weekday")With the default numbering you would need =OR(WEEKDAY(B2)=1,WEEKDAY(B2)=7), which is longer and easier to get
wrong. That's why most people use return type 2 for weekend checks.
To count weekend dates in a list, use =SUMPRODUCT(--(WEEKDAY(B2:B7,2)>5)). For the six renewals above, it gives 3.
How to show the day name instead of a number#
WEEKDAY only returns numbers. For a name, use TEXT with a day format code:
| Formula | Result for Mar 15, 2025 |
|---|---|
=TEXT(B2,"dddd") | Saturday |
=TEXT(B2,"ddd") | Sat |
TEXT returns text, so you can't do date maths with the result. The day names come out in the language of your Excel settings, so a French copy of Excel shows "samedi".
If the file is shared across countries and you need the same names everywhere, build them yourself with CHOOSE:
=CHOOSE(WEEKDAY(B2),"Sun","Mon","Tue","Wed","Thu","Fri","Sat")WEEKDAY gives a number from 1 to 7, and CHOOSE picks the matching item from the list, whatever language Excel uses.
To keep the real date but display the day name, use a custom number format instead: press Ctrl+1 (Windows) or
⌘1 (Mac), choose Custom, and type dddd. The cell still holds the date.
How to find the start of the week or the next Monday#
WEEKDAY tells you how far a date is from the start of its week, so simple maths moves to the day you want:
| Goal | Formula | Result for Sat Mar 15, 2025 |
|---|---|---|
| Monday of the same week | =B2-WEEKDAY(B2,2)+1 | Mon Mar 10, 2025 |
| Next Monday | =B2+8-WEEKDAY(B2,2) | Mon Mar 17, 2025 |
| Move weekends to Monday | =IF(WEEKDAY(B2,2)>5,B2+8-WEEKDAY(B2,2),B2) | Mon Mar 17, 2025 |
The first formula is handy for weekly reports: every date from Monday to Sunday maps to the same Monday, so you can group or total by week. The results are dates, so format the cells as dates. If you need to skip holidays as well as weekends, use WORKDAY instead; see NETWORKDAYS and WORKDAY.
How to highlight weekends with conditional formatting#
Use WEEKDAY in a formula rule. Select the dates, for example A2:A31, then go to Home > Conditional Formatting > New Rule > Use a formula to determine which cells to format, and enter:
=WEEKDAY($A2,2)>5Pick a fill colour and click OK. The $ before A keeps the rule on column A, so you can also apply it to whole rows.
See conditional formatting basics for more rules.
What are the common WEEKDAY mistakes?#
| Mistake | What happens | Fix |
|---|---|---|
| Forgetting the return type | Sunday is 1, so >5 catches Friday and Saturday | Use WEEKDAY(B2,2)>5 |
Using >=5 with return type 2 | Fridays count as weekends | Use >5 |
| An empty cell | WEEKDAY returns 7 (a Saturday) | Test for blanks first: IF(B2="","",...) |
| A date stored as text | #VALUE! | Convert it to a real date |
| DAY instead of WEEKDAY | Day of the month, not of the week | Use WEEKDAY |
The empty-cell case surprises people. Excel treats an empty cell as 0, and day 0 counts as a Saturday, so blank rows can show up as weekends.
WEEKDAY pairs well with the other date functions. Find a renewal with EDATE, then check its day:
=WEEKDAY(EDATE(B2,12),2)>5. See EDATE and EOMONTH, or
count the days between two dates.
Practise it#
Try the weekend exercise on this page, then practise EDATE, EOMONTH and WEEKDAY in a live spreadsheet. You'll find renewal dates, show day names with TEXT and flag the renewals that land on a weekend.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Will each renewal land on a weekend? In C2, show Weekend if the renewal date in B2 is a Saturday or Sunday, and Weekday if not. Use WEEKDAY(B2,2)>5 as the test inside IF.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Day Type | |||
| 2 | ||||
| 3 | ||||
| 4 | ||||
| 5 | ||||
| 6 | ||||
| 7 | ||||
| 8 | ||||
| 9 |
Tip: With return type 2, Saturday is 6 and Sunday is 7. Put the test first in IF, then the two labels in quotes.
Practise this in a lesson
Frequently asked questions
How do I check if a date is a weekend in Excel?
Use =WEEKDAY(B2,2)>5. With return type 2, Saturday is 6 and Sunday is 7, so the test is TRUE only on weekends. Wrap it in IF for a label: =IF(WEEKDAY(B2,2)>5,"Weekend","Weekday").
How do I get the day name from a date in Excel?
Use TEXT: =TEXT(B2,"dddd") gives the full name, like Thursday, and =TEXT(B2,"ddd") gives the short name, like Thu. The language follows your Excel settings.
Why does WEEKDAY return 1 for Sunday?
Return type 1 is the default, and it starts the week on Sunday. Add 2 as the second argument to start the week on Monday instead.
What is the difference between WEEKDAY and DAY?
DAY returns the day of the month, from 1 to 31. WEEKDAY returns the day of the week, from 1 to 7.
Why does WEEKDAY show 7 for an empty cell?
Excel treats an empty cell as 0, and day 0 counts as a Saturday. Skip blanks first, for example =IF(B2="","",WEEKDAY(B2,2)).