If you are looking for an Excel function to get day of week from date, you've landed on the right page. This tutorial will teach you how to use the WEEKDAY formula in Excel to convert a date to a weekday name, filter, highlight and count weekends or workdays, and more.
There are a variety of functions to work with dates in Excel. The day of week function (WEEKDAY) is particularly useful for planning and scheduling, for example to determine the timeframe of a project and automatically remove weekends from the total. So, let's run through the examples one-at-a-time and see how they can help you cope with various date-related tasks in Excel.
WEEKDAY - Excel function for day of week
The Excel WEEKDAY function is used to return the day of the week from a given date.
The result is an integer, ranging from 1 (Sunday) to 7 (Saturday) by default. If your business logic requires a different enumeration, you can configure the formula to start counting with any other day of week.
The WEEKDAY function is available in all versions of Excel 365 through 2000.
The syntax of the WEEKDAY function is as follows:
Where:
Serial_number (required) - the date that you want to convert to the weekday number. It can be supplied as a serial number representing the date, as a text string in the format that Excel understands, as a reference to the cell containing the date, or by using the DATE function.
Return_type (optional) - determines what day of the week to use as the first day. If omitted, defaults to the Sun-Sat week.
Here is a list of all supported return_type values:
Return_type | Number returned |
---|---|
1 or omitted | From 1 (Sunday) to 7 (Saturday) |
2 | From 1 (Monday) to 7 (Sunday) |
3 | From 0 (Monday) to 6 (Sunday) |
11 | From 1 (Monday) to 7 (Sunday) |
12 | From 1 (Tuesday) to 7 (Monday) |
13 | From 1 (Wednesday) to 7 (Tuesday) |
14 | From 1 (Thursday) to 7 (Wednesday) |
15 | From 1 (Friday) to 7 (Thursday) |
16 | From 1 (Saturday) to 7 (Friday) |
17 | From 1 (Sunday) to 7 (Saturday) |
Note. The return_type values 11 through 17 were introduced in Excel 2010 and therefore they cannot be used in earlier versions.
Basic WEEKDAY formula in Excel
For starters, let's see how to use the WEEKDAY formula in its simplest form to get the day number from date.
For example, to get the weekday from date in C4 with the default Sunday - Saturday week, the formula is:
=WEEKDAY(C4)
If you have a serial number representing the date (e.g. brought by the DATEVALUE function), you can enter that number directly in the formula:
=WEEKDAY(45658)
Also, you can type the date as a text string enclosed in quotation marks directly in the formula. Just be sure to use the date format that Excel expects and can interpret:
=WEEKDAY("1/1/2025")
Or, supply the source date in a 100% reliable way using the DATE function:
=WEEKDAY(DATE(2025, 1,1))
To use the day mapping other than the default Sun-Sat, enter an appropriate number in the second argument. For example, to start counting days from Monday, the formula is:
=WEEKDAY(C4, 2)
In the image below, all the formulas return the day of the week corresponding to January 1, 2025, which is stored as the number 45658 internally in Excel. Depending on the value set in the second argument, the formulas output different results.
At first sight, it may seem that the numbers returned by the WEEKDAY function have very little practical sense. But let's look at it from a different angle and discuss some formulas that solve real-life tasks.
How to convert Excel date to weekday name
By design, the Excel WEEKDAY function returns the day of the week as a number. To turn the weekday number into the day name, employ the TEXT function.
To get full day names, use the "dddd" format code:
To return abbreviated day names, the format code is "ddd":
For example, to convert the date in A3 to the weekday name, the formula is:
=TEXT(WEEKDAY(A3), "dddd")
Or
=TEXT(WEEKDAY(A3), "ddd")
Please note that in this formula, you should use WEEKDAY with only one argument, serial_number. Do not include return_type, even if your week starts on a day other than Sunday.
Actually, the WEEKDAY function is unnecessary for this formula. The TEXT function alone would work nicely:
=TEXT(A3, "dddd")
Though, we often think of WEEKDAY as the day of week function, which might make this formula easier to remember.
Another possible solution is using WEEKDAY together with the CHOOSE function.
For example, to get an abbreviated weekday name from the date in A3, the formula goes as follows:
=CHOOSE(WEEKDAY(A3),"Sun","Mon","Tus","Wed","Thu","Fri","Sat")
Here, WEEKDAY returns a serial number from 1 (Sun) to 7 (Sat) and CHOOSE selects the corresponding value from the list. Since the date in A3 (Wednesday) corresponds to 4, CHOOSE outputs "Wed", which is the 4th value in the list.
Though the CHOOSE formula is slightly more cumbersome to configure, it provides more flexibility letting you output the day names in any format you want. In the above example, we show the abbreviated day names. Instead, you can deliver full names, custom abbreviations or even day names in a different language.
For more examples, see Excel formula to get day of week from date.
Excel WEEKDAY formula to find and filter workdays and weekends
When dealing with a long list of dates, you may want to know which ones are working days and which are weekends.
To identify weekends and weekdays in Excel, build an IF statement with the nested WEEKDAY function. For example:
=IF(WEEKDAY(A3, 2)<6, "Workday", "Weekend")
This formula goes to cell A3 and is copied down across as many cells as needed.
In the WEEKDAY formula, you set return_type to 2, which corresponds to the Mon-Sun week where Monday is day 1. So, if the weekday number is less than 6 (Monday through Friday), the formula returns "Workday", otherwise - "Weekend".
To filter weekends or workdays, apply Excel filter to your dataset (Data tab > Filter) and select either "Weekend" or "Workday".
In the screenshot below, we have weekdays filtered out, so only weekends are visible:
If some regional office of your organization works on a different schedule where the days of rest are other than Saturday and Sunday, you can easily adjust the WEEKDAY formula to your needs by specifying a different return_type.
For example, to treat Saturday and Monday as weekends, set return_type to 12, so you'll get the "Tuesday (1) to Monday (7)" week type:
=IF(WEEKDAY(A2, 12)<6, "Workday", "Weekend")
How to highlight weekends workdays and in Excel
To spot weekends and workdays in your worksheet at a glance, you can get them automatically shaded in different colors. For this, use the weekday/weekend formula discussed in the previous example with Excel conditional formatting. As the condition is implied, we only need the core WEEKDAY function without the IF wrapper.
To highlight weekends (Saturday and Sunday):
=WEEKDAY($A2, 2)<6
To highlight workdays (Monday - Friday):
=WEEKDAY($A2, 2)>5
Where A2 is the upper-left cell of the selected range.
To set up the conditional formatting rule, the steps are:
- Select the list of dates (A2:A15 in our case).
- On the Home tab, in the Styles group, click Conditional formatting > New Rule.
- In the New Formatting Rule dialog box, select Use a formula to determine which cells to format.
- In the Format values where this formula is true box, enter the above-mentioned formula for weekends or weekdays.
- Click the Format button and select the desired format.
- Click OK twice to save the changes and close the dialog windows.
For the detailed information on each step, please see How to set up conditional formatting with formula.
The result looks pretty nice, doesn't it?
How to count weekdays and weekends in Excel
To get the number of weekdays or weekends in the list of dates, you can use the WEEKDAY function in combination with SUM. For example:
To count weekends, the formula in D3 is:
=SUM(--(WEEKDAY(A3:A20, 2)>5))
To count weekdays, the formula in D4 takes this form:
=SUM(--(WEEKDAY(A3:A20, 2)<6))
In Excel 365 and Excel 2021 that handle arrays natively, this works as a regular formula as shown in the screenshot below. In Excel 2019 and earlier, press Ctrl + Shift + Enter to make it an array formula.
How these formulas work:
The WEEKDAY function with return_type set to 2 returns a day number from 1 (Mon) to 7 (Sun) for each date in the range A3:A20. The logical expression checks if the returned numbers are greater than 5 (for weekends) or less than 6 (for weekdays). The result of this operation is an array of TRUE and FALSE values.
The double negation (--) coerces the logical values to 1's and 0's. And the SUM function adds them up. Given that 1 (TRUE) represents the days to be counted and 0 (FALSE) the days to be ignored, you get the desired result.
Tip. To calculate weekdays between two dates, use the NETWORKDAYS or NETWORKDAYS.INTL function.
If weekday then, if Saturday or Sunday then
Finally, let's discuss a bit more specific case that shows how to determine the day of the week, and if it's Saturday or Sunday then do something, if a weekday then do something else.
Suppose you are calculating payments for employees who have done some extra work on their days off, so you need to apply different payments rates for workdays and weekends. This can be done using the following IF statement:
- In the logical_test argument, nest the WEEKDAY function that checks whether a given day is a workday or weekend.
- In the value_if_true argument, multiply the number of working hours by the weekend rate (G4).
- In the value_if_false argument, multiply the number of working hours by the workday rate (G3).
The complete formula in D3 takes this form:
=IF(WEEKDAY(B3, 2)>5, C3*$G$4, C3*$G$3)
For the formula to copy correctly to the below cells, be sure to lock the rate cell addresses with the $ sign (like $G$4).
WEEKDAY function not working
Generally, there are two common errors that a WEEKDAY formula may return:
#VALUE! error occurs if either:
- Serial_number or return_type is non-numeric.
- Serial_number is out of supported dates range (1900 to 9999).
#NUM! error occurs when return_type is out of the permitted range (1-3 or 11-17).
This is how to use the WEEKDAY function in Excel to manipulate days of week. In the next article, we will explore Excel functions to operate on bigger time units such as weeks, months and years. Please stay tuned and thank you for reading!
Practice workbook for download
WEEKDAY formula in Excel - examples (.xlsx file)
284 comments
I have a range of random dates in column b3:b30 and wish to find the oldest date and convert to the corresponding Monday
How do I nest and use the MIN and Weekday function in excel?
I have problem when creating =WEEKDAY($A2,2)>5 for year 2020 Feb 28 cross over to Mar 01. My "Sat" did not appear. It turns out to be a "Sun". I've checked the cell, the date is 01/03/2020 but ddd turn out to be a "Sun". How can I solve this?
I am using conditional formatting to highlight weekends. If the first falls on a weekend it does not highlight. I am using =OR(WEEKDAY($A1)=7,WEEKDAY($A1)=1). What is wrong?
Hello Bill,
Since 30 and 31 of December is the 53rd week of 2019 and 1st to 5th January is the first week of 2020, the formula for this particular week needs some modification. Please try the one below:
=IF(OR(WEEKNUM($A1, 1) = 53,WEEKNUM($A1, 1) = 1), TRUE)
Hope it'll work for you.
Thanks for the tip, but it didn't quite work. I am using a new spreadsheet for the year. However, I did get it to work by starting it in the correct cell (not $A1 but $A2). I like your site, I have learned a lot from it.
Thank you for replying, Bill. Glad to hear you found a solution!
Sir..i need to formula.one cell i enter month and i get result in column sequences ..wed..thu..sun..wed..thu..sun..wed..thu with date for this month
Can I actually do this? :)
I have this format in the cells for date and time:
04:35 PM EDT Oct 29 2019
How can I create a formula for finding how many minutes elapsed between cells in column A (arrival time) and column B (departure time)?
I want to calculate how long my visitors spent in my office.
Hi Team,
I am working in a BPO industry. I need to track the production as well as the other details in day wise. For example The date is 1st November, in need to track the Target, Achieved, Production. So I have merged the 1st November header has been merged into three above cells. I do not have any issues on this. Please help me out to convert into weekly basis with the same header.
I'm looking to calculate the date of the year based on a day.
I'm doing some analysis using 31 years of day and have a mean value, 45 (i.e. day 45 of 365). I want to convert 45 to represent a date, so I don't have a generic year to plug in.
What would be the excel formula to do this?
How can i calculate the first (1st) day of each calendar month or the immediately preceding Business Day if the first (1st) day of such calendar month is not a Business Day?
Is there a way to calculate the day of the week with the numbering 1-14 instead of 1-7?
hi,
i need to calculate age between 2 dates excluding weekends?
Hi, I need to return a custom day (i.e S for Sunday and so forth).. I used the CHOOSE and WEEKDAy function but then the formula doesn't drag across and then follow the next day sequence. It's just copying the S from the cell before. How do I get this formula to work across the schedule I am creating? =CHOOSE(WEEKDAY(cell reference), "S", "M", "T", etc etc. Can you please help as I will using this to setup monthly work schedules
Thanks, very helpfull
Hello . I'm following all the functions from last week. You are Awesome because all your examples are very useful..
I have once quick question for you , Please help me out because I'm stuck here.
Question : For ex : I have a one date as a reference and from this reference date i need to get 3 different dates i.e ( 7 days before the ref date, 2 days before the ref date & 1 day before the ref date) but the twist is that the new date should fall on Weekday and not on Weekend( i.e Sat & sun).
Please help me out , i'm trying to figure out this from many days.
Thank you in Advance!!!!
I am working on something and I need to enter a formula that counts a large number of days of the week that automatically adds up how many for example Fridays are in that list.
may i get the answer in Microsoft Excel to these questions and reassure me if I can be selected. 1.sunday - Saturday + 4 Monday =? , Thursday - 3 Saturday + monthly total = 2. Summation = Sunday of the month divided by summation Monday of the month. 3. 40% of the Wednesday of the month multiplying by 20% of Friday. I'm counting on you really.
Condition 1 should meet any text
Condition 2 if the date exceeds or equal the current date (eg: 16th of any month), it should return a value 2
Condition 3 if the date is between 1st and 15th of the same month, it should return a value of 1
Condition 4 if the date is of the preceding month, it should return a value of 0
My formula
=if(and(a1="A", or(today()>=date(2019,3,16), 2, if(a1="A", or(today()=date(2019,3,1),1, if(a1="A", or(today()<date(2019,3,1),0)))
This formula is not working . could you please let me know what is the syntax error
Hello, I've got a problem with a specific formula.
I have 2 cells generating dates:
Todays date (using =now () ) - In the format of dd-mm-yy hh:mm:ss
Working date (using =workday(todays date,5)+time(15,0,0) so it adds +5 to working date + declares time of 15:00:00. For my purpose, I need the format to remain dd-mm-yyyy 15:00:00.
The issue that I'm having is that once the time passes 15:30:00 on today's date (=now() function) - I need the working date to increase from 5 to 6, so it becomes tomorrow's work.
Can you please advise on this?
Kind Regards,
James.
I forgot to add, this will probably need to be converted to an IF function, my cell references are:
Todays Date = I2 ( =NOW() )
Working Date = I3 ( =WORKDAY(I2,5)+TIME(15,0,0) )
Say I want an "IF" formula that checks a cell (a1) with a date indicated then on a different cell (b1) it validates the indicated date on cell A1 that its already pass 3 business days once confirmed cell B1 would indicate as a "Yes" if not then a "No", is this possible?
Dear sir i want to account the month. from start date to end date
Example
01-12-2018 - 01-06-2018 total 06 month
If the date field is blank how do I get the return cell day of the week to stay blank? The =WEEKDAY(A2) formula is working fine and reporting as needed into the day of the week when the date is filled in, but if the date cell is blank yet (haven't added that data line yet) how do I get the day of the week cell to stay blank also?
Try:
=iferror(weekday(a2), " ")