Summary

The Excel WORKDAY.INTL function takes a date and returns the "next" working day, based on a given offset value. Unlike the WORKDAY function, WORKDAY.INTL allows you to customize which days are considered weekends (non-working days). You can use WORKDAY.INTL function to calculate completion dates, ship dates, etc. that take into account non-working days.

Purpose 

Get date n working days in future or past

Return value 

Next or previous working date based on inputs

Syntax

=WORKDAY.INTL(start_date,days,[weekend],[holidays])
  • start_date - The start date.
  • days - The end date.
  • weekend - [optional] Setting for which days of the week should be considered weekends.
  • holidays - [optional] A list of one or more dates that should be considered non-work days.

How to use 

The WORKDAY.INTL function calculates the "nearest" working day n days in the past or future, taking into non-working days. WORKDAY.INTL can be used to calculate due dates, delivery dates, and other dates that must exclude non-working days. Use a positive number as days for future dates and a negative number for past dates. This function is more robust than the WORKDAY function because it lets you customize which days of the week are considered weekends.

The WORKDAY.INTL function takes four arguments: start_date, days, weekend, and holidaysStart_date must be a valid Excel date. The days argument is the number of days in the future or past to move from start_date, taking into account non-working days. Use a positive number for days to move forward in time, and a negative number to move back.

The weekend argument is optional and controls which day(s) of the week should be considered weekends, and therefore non-working days. By default, WORKDAY.INTL will treat Saturday and Sunday as non-working days. See below for details on how to configure weekend to treat different days of the week as non-working days.

Holidays is an optional argument to specify non-working days. Holidays should be provided as a range that contains valid Excel dates. If holidays are not provided, WORKDAY.INTL will treat only Saturdays and Sundays as non-working days, unless the weekend argument has been set differently.

Note: WORKDAY.INTL does not include the start date as a work day. 

Example #1 - basic usage

With the start_date in A1, days set to 1, and holidays in C1:C3 you can use WORKDAY.INTL to get the next working day like this:

=WORKDAY.INTL(A1,1) // default - Sat and Sun excluded
=WORKDAY.INTL(A1,1,11) // exclude Sun only
=WORKDAY.INTL(A1,1,11,C1:C3) // exclude Sun + holidays in C1:C3

In the last two examples above, we use the numeric code 11 to set weekends to Sundays only. See the table below for the full list of available codes.

Example #2 - code string for weekends

One of WORKDAY.INTL's tricks is that it can be configured to treat any day of the week as a workday by providing the weekend argument as a 7-digit code that covers all seven days of the week, Monday through Saturday. In this scheme, a 1 indicates a weekend (non-working) day, and a 0 indicates a workday. The table below shows sample weekend codes in column B and the workdays they define in column J:

Weekend code options for WORKDAY.INTL

This method is more flexible since it can define any day of the week as a weekend or workday. For example, to get the next workday that is a Monday, Wednesday, or Friday after a date in cell A1, you can use a formula like this:

=WORKDAY.INTL(A1,1,"0101011") // Mon, Wed, Fri

To get the next Tuesday or Thursday, you can use a formula like this:

=WORKDAY.INTL(A1,1,"1010111") // Tue, Thu

You can use this feature to create a list of weekends only, or a list of sequential Mondays, Wednesdays, and Fridays, or any other combination of weekdays, so long as the pattern repeats each week.

Note: weekend must be entered as a text string surrounded by double quotes ("") when using this feature.

Weekend codes

The table below shows the codes available for the weekend argument to select a "fixed" weekend option. Note that unlike the "code string" option explained above, these codes are numeric and should not be entered as text.

Code Weekend days
1 (default) Saturday, Sunday
2 Sunday, Monday
3 Monday, Tuesday
4 Tuesday, Wednesday
5 Wednesday, Thursday
6 Thursday, Friday
7 Friday, Saturday
11 Sunday only
12 Monday only
13 Tuesday only
14 Wednesday only
15 Thursday only
16 Friday only
17 Saturday only

Notes

  • If start_date is invalid, WORKDAY.INTL returns the #NUM! error.
  • If start_date + day is invalid, WORKDAY.INTL returns the #NUM! error.
  • If any holiday is invalid, WORKDAY.INTL returns the #NUM! error.
  • If weekend is invalid, WORKDAY.INTL returns the #VALUE! error.
Dave Bruns Profile Picture

AuthorMicrosoft Most Valuable Professional Award

Dave Bruns

Hi - I'm Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.