Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, 2013, 2016, 2019, Excel in Microsoft 365, and 2021. If you are using an earlier version (Excel 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Excel, click here: Finding the Previous Work Day.
Written by Allen Wyatt (last updated March 30, 2024)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, Excel in Microsoft 365, and 2021
Joe wonders how to return the date of the previous workday, taking into account any holidays. He needs to be able to get this information on any particular date. This is rather easy; in fact, Excel has a function designed specifically for this purpose:
=WORKDAY(A1,-1,MyHolidays)
The WORKDAY function is used to determine dates for workdays, based upon adjustments that you specify. The first argument, A1, refers to the cell where the reference date is located. This information can be obtained in a couple of different ways. You can manually enter the date into cell A1 or you could use a formula in that cell to signify the date. For instance, you could use the following simple formula in cell A1 so that it always contains today's date:
=TODAY()
The second part of the formula, -1, says to subtract one day from the date in A1. The third part of the formula, MyHolidays, refers to a named range containing a list of dates and holidays you want skipped in determining the previous workday.
The WORKDAY function returns the date of day previous to the date entered in A1, allowing for any holidays.
It should be noted that the WORKDAY function assumes that the non-workdays are Saturday and Sunday. This might not always be the case, however. If you want the ability to specify different non-workdays, then you should use the WORKDAY.INTL function, which was introduced in Excel 2010. It works much the same as the WORKDAY function, except it added a new parameter that is specified in the third position.
For instance, let's say that you run a barber shop and you are closed on Sunday and Monday. (These are your non-workdays.) In that case, you could calculate the previous workday, with holidays, by using the following:
=WORKDAY.INTL(A1,-1,2,MyHolidays)
Note the addition of the third parameter. This is a value indicating which days of the week are your non-workdays. The value can be one of the following:
Value | Non-Workdays | |
---|---|---|
1 | Saturday/Sunday | |
2 | Sunday/Monday | |
3 | Monday/Tuesday | |
4 | Tuesday/Wednesday | |
5 | Wednesday/Thursday | |
6 | Thursday/Friday | |
7 | Friday/Saturday | |
11 | Sunday | |
12 | Monday | |
13 | Tuesday | |
14 | Wednesday | |
15 | Thursday | |
16 | Friday | |
17 | Saturday |
Other than the added third parameter, the WORKDAY.INTL function works the same as the WORKDAY function.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (8106) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, Excel in Microsoft 365, and 2021. You can find a version of this tip for the older menu interface of Excel here: Finding the Previous Work Day.
Save Time and Supercharge Excel! Automate virtually any routine task and save yourself hours, days, maybe even weeks. Then, learn how to make Excel do things you thought were simply impossible! Mastering advanced Excel macros has never been easier. Check out Excel 2010 VBA and Macros today!
It is no secret that Excel allows you to work with dates in your worksheets. Getting your information into a format that ...
Discover MoreNeed to print an elapsed date in a strange format? It's easier to do than may appear at first glance. Here's a discussion ...
Discover MoreWhen you enter a date into a cell and you omit the year, Excel helpfully adds the current year to the date. If you want ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2024-03-31 23:33:58
Fred Potter
Hello Simon,
I think that the "Weekend string" is a series of 0’s and 1’s that represent seven days of the week, beginning with Monday. 1 represents a non-working day and 0 represents a workday. Your example would be:
“1000111” – Fri, Sat, Sun & Monday are "weekends" or non-working days..
2024-03-31 05:39:01
Simon Freeman
Suppose you only work Tuesday (13), Wednesday (14) and Thursday (15). Can you use =WORKDAY.INTL(A1,-1,13 14 15,MyHolidays)?
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2025 Sharon Parq Associates, Inc.
Comments