Calculate Business Days with WORKDAY and NETWORKDAYS (Holidays, Weekends, and Custom Workdays)

Calculate Business Days with WORKDAY and NETWORKDAYS (Holidays, Weekends, and Custom Workdays)

Calculate Business Days with WORKDAY and NETWORKDAYS (Holidays, Weekends, and Custom Workdays)

D+N deadlines, monthly workdays, and project Gantt charts—use WORKDAY/NETWORKDAYS and INTL options to accurately reflect your company calendar.

Syntax and Key Options

FunctionSyntaxKey Point
WORKDAY=WORKDAY(start_date, days, [holidays])Weekend is fixed as Saturday and Sunday
WORKDAY.INTL=WORKDAY.INTL(start, days, [weekend], [holidays])Specify a weekend pattern (for example, 7 = Saturday only)
NETWORKDAYS=NETWORKDAYS(start_date, end_date, [holidays])Number of workdays between two dates
NETWORKDAYS.INTL=NETWORKDAYS.INTL(start, end, [weekend], [holidays])Accounts for custom weekends and holidays

Weekend code examples: 1 = Sunday and Saturday, 2 = Monday and Sunday, 7 = Saturday only. You can also use an 11-character string (Monday through Sunday; 1 = non-working day / 0 = workday). Example: "0000011" = Saturday and Sunday are non-working days only.

Calculate Deadlines — WORKDAY/WORKDAY.INTL

Example 1) 10 business days after the start date (D2)

=WORKDAY(D2, 10, HOL)

Example 2) Friday–Saturday weekend calendar (Middle East)

=WORKDAY.INTL(D2, 7, 5, HOL)   /* 5=Friday–Saturday */

Example 3) 5 business days earlier

=WORKDAY(D2, -5, HOL)

Count Workdays — NETWORKDAYS/INTL

Example 4) Workdays from start to end (E2:F2)

=NETWORKDAYS(E2, F2, HOL)

Example 5) Saturday only as a non-working day (6-day workweek)

=NETWORKDAYS.INTL(E2, F2, 7, HOL)

Example 6) Number of workdays per month (reference month in G2)

=NETWORKDAYS(EOMONTH(G2,-1)+1, EOMONTH(G2,0), HOL)

8 Practical Patterns

① SLA based on issue registration date (D+3 business days)

=WORKDAY(A2, 3, HOL)

② Elapsed workdays excluding weekends and holidays (through today)

=NETWORKDAYS(B2, TODAY(), HOL) - 1

③ Gantt bar (color workdays only)

=--(NETWORKDAYS($B2, C$1, HOL) - NETWORKDAYS($A2-1, C$1, HOL) = 1)

④ Sprint end date (custom weekend string)

=WORKDAY.INTL(A2, 9, "0000011", HOL)   /* Saturday–Sunday non-working days */

⑤ 9:00 AM on the next workday (date + time)

=WORKDAY(TODAY(),1,HOL) + TIME(9,0,0)

⑥ Work only on specific weekdays (Monday–Thursday workdays, Friday–Sunday non-working days)

=NETWORKDAYS.INTL(E2, F2, "0000111", HOL)

⑦ Dynamic holiday filter (include holidays from the relevant month only)

=NETWORKDAYS(E2, F2, FILTER(HOL, TEXT(HOL,"yyyymm")=TEXT(E2,"yyyymm")))

⑧ Work backward by “business days +N” (move up a delivery date)

=WORKDAY(INT(F2), -N, HOL)

Common Mistakes and Checks

  • Text dates → Convert them to date format (using formatting or DATEVALUE).
  • Holiday list range → Avoid merged cells and blanks; update the list when the year changes.
  • Confusing weekend codes → Check the INTL code against local conventions.
  • Cells containing times → Use INT() to work with the date only, then add the time.

Summary

GoalTypical Formula
Deadline N business days laterWORKDAY(start, N, HOL)
Number of workdays in a periodNETWORKDAYS(start, end, HOL)
Custom weekendWORKDAY/NETWORKDAYS.INTL(..., weekend, HOL)
Try applying WORKDAY(start date, number of business days, HOL) to a project deadline cell now. Excel will automatically calculate a schedule that matches your team calendar.

Leave a Reply

Your email address will not be published. Required fields are marked *