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.
Professional Development Guidance! Four world-class developers offer start-to-finish guidance for building powerful, robust, and secure applications with Excel. The authors show how to consistently make the right design decisions and make the most of Excel's powerful features. Check out Professional Excel Development today!
Excel can easily store dates. If you want to increment a date by one month, there are a number of ways you can accomplish ...
Discover MoreEver wonder how to calculate the date for Thanksgiving in the United States? In this tip you discover not only that, but ...
Discover MoreBecause Excel stores dates internally as serial numbers, it makes doing math with those dates rather easy. Even so, it ...
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 © 2024 Sharon Parq Associates, Inc.
Comments