Summary

To calculate the number of workdays between two dates, you can use the NETWORKDAYS function.  In the example shown, the formula in D7 is:

=NETWORKDAYS(B7,C7,B10:B11)

which returns a count of workdays excluding the holidays in B10:B11.

Generic formula

=NETWORKDAYS(start_date,end_date,holidays)

Explanation 

The Excel NETWORKDAYS function calculates the number of working days between two dates. NETWORKDAYS automatically excludes weekends (Saturday and Sunday) and can optionally exclude a list of holidays supplied as dates. 

For example, in the screenshot shown, the formula in D6 is:

=NETWORKDAYS(B6,C6) // returns 5

This formula returns 5 since there are 5 working days between December 23 and December 27, and no holidays have been provided. Note that NETWORKDAYS includes both the start and end dates in the calculation if they are workdays.

NETWORKDAYS can also exclude a custom list of holidays. In the next cell down, we use the same formula with the same dates, plus a list of holidays in B10:B11.

=NETWORKDAYS(B7,C7,B10:B11) // returns 3

This formula returns 3, since two of the 5 days are holidays.

Custom weekends

If you need take into account custom weekends (i.e. weekends are Saturday only, Sunday and Monday, etc.) you'll need to switch to the more robust NETWORKDAYS.INTL function, which allows you to set what days of the week are considered are considered weekends, by supplying a weekend argument in the form of a numeric code. 

Need a date?

If you need a date n workdays in the past or future, see the WORKDAY function.

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.