FormulaDates

Count working days between two dates

Count the business days between a start and end date, excluding weekends and an optional list of holidays, for deadlines and SLAs.

Last updated

Fill in the blanks

Assembled in your browser — nothing you type is stored or sent anywhere.

Your formula

=NETWORKDAYS(B2, C2, Holidays!A2:A15)

Works in both Excel and Google Sheets unless the fine print below says otherwise.

Why it's built this way

  • →NETWORKDAYS counts Monday-to-Friday dates between the two bounds, INCLUSIVE of both the start and end date, treating Saturday and Sunday as automatically excluded.
  • →The third argument subtracts any date in that range from the count if it would otherwise have counted as a workday — that's how a public holiday landing on a Tuesday stops being counted.
  • →When the default Saturday/Sunday weekend doesn't match a team's actual schedule, NETWORKDAYS.INTL takes a weekend pattern as an extra argument — the escape hatch this plain version doesn't have.

The fine print

  • →The holidays argument is optional — drop it (and the trailing comma) for a plain weekday count — but if supplied, every cell in that range needs an actual date value, not text that merely looks like one.
  • →Both endpoints count as workdays when they fall Monday to Friday, which makes the result one day higher than an "end minus start" gap would suggest — easy to be off by one against a naive count.
  • →Works identically in Excel and Google Sheets, including the optional third argument.

Part by part

=NETWORKDAYS(
Counts working days between two dates, inclusive of both. It assumes a Saturday and Sunday weekend, which the INTL variant lets you change.
{{holidays}}
An optional range of dates to exclude. Omitting it counts public holidays as working days, which is the difference between a plausible answer and a correct one.

Common mistakes

  • =NETWORKDAYS(B2, C2)

    Without a holidays range, every public holiday counts as a working day. The result is close enough to look right and wrong by exactly the number of holidays in the period.

    =NETWORKDAYS(B2, C2, Holidays!A:A)
  • =(C2-B2)/7*5

    Approximates the working days and lands on a fraction, and it ignores which days of the week the period actually starts and ends on. A Monday-to-Friday week and a Wednesday-to-Tuesday one give different real answers.

  • =NETWORKDAYS(B2, C2, "2026-01-01")

    A text date rather than a range. It works in some versions and errors in others; a range of properly typed dates is portable and easier to maintain as the holiday list changes.

Questions

Is the count inclusive of both dates?

Yes. A Monday-to-Friday range returns five, not four, which surprises people expecting a difference. Subtract one if you need elapsed days rather than days worked.

What if the weekend is not Saturday and Sunday?

NETWORKDAYS.INTL takes a weekend code or a seven-character mask, so a Friday-Saturday weekend or a single rest day are both expressible. The plain version is hard-coded to the Western convention.

Where should the holiday list live?

On its own sheet, as real dates in one column, referenced by range. Keeping it separate means updating it annually in one place rather than editing every formula that depends on it.

Does it handle half-days or part-time schedules?

No — it counts whole days only. Anything with fractional working days needs building from the day count rather than expecting the function to model it.

Related in Formulas