Available in:All versions (Works in Excel 2007, every later version, Microsoft 365 and Excel for the web)Examples need Excel 2010 or laterCategory:Date & time

WORKDAY

WERKDAG in Dutch Excel

Returns the date that lies a number of working days after, or before, a start date, skipping weekends and any holidays you list.

Difficulty rating 2 of 5. The arguments are plain, but you need to know that the start day itself is never counted and that a holiday only matters when it falls on a Monday to Friday.

Last updated: 13 October 2026

See the worked examples

Sheet excerpt: D2 holds the formula
RowABCD
1InvoiceSupplierInvoice dateDue date
226-0102Kabelgroothandel Smit2 Feb 202616 Feb 202616 Feb 2026=WORKDAY(C2, 10)=WORKDAY(C2; 10)
326-0118Pijp & Fitting Aalbers12 Feb 2026
426-0131Elektra Onderdelen Yilmaz20 Feb 2026
526-0156Gereedschap Raman4 Mar 2026
Formula cell (D2)InputNote: No Dutch public holiday falls between Feb 2 and Mar 18, 2026, so this example leaves out the holidays argument.

Result: 16 Feb 2026

=WORKDAY(C2, 10)
=WORKDAY(C2; 10)

What WORKDAY does and when to use it

What it does: it returns the date that lies a given number of working days from a start date, for example the due date 10 working days after an invoice date.

When to use it: for due dates, deadlines and test windows written in working days. Saturdays, Sundays and the holidays you list never count. For another weekend use WORKDAY.INTL, for the number of working days between two dates use NETWORKDAYS, and for a date a number of months away use EDATE.

How Excel evaluates it

Excel reads start_date as a serial number and ignores any time of day. It then steps one calendar day at a time, forward when days is positive and backward when it is negative, and counts a day only if it is a Monday to Friday and is not in holidays.

The start day is never counted, so day 1 is the first counted day after it. When the count reaches the size of days, the date of that last counted day is the result. With days at 0 there is nothing to count and the start date comes back as it is, even when it falls on a weekend.

Watch out: The start date itself is never counted, so day 1 is the first working day after it.

Mental model

Walking along a calendar, stepping over Saturdays, Sundays and marked holidays without counting them, and stopping on the day of your n-th counted step.

Terms used on this page: serial number, range

WORKDAY(start_date, days, [holidays])
WORKDAY(start_date; days; [holidays])
Arguments
ArgumentTypeMeaning
start_dateRequiredThe date to start from.
daysRequiredThe number of working days to add; negative goes back.
holidaysOptionalA range of dates to skip.

Return value:A date (serial number): the day on which the working-day count is complete

Formulas use commas (,) between arguments, as in English Excel. Formulas use semicolons (;) between arguments, as in Dutch Excel. Formulas use commas (,) between arguments, as in English Excel; Dutch Excel uses semicolons (;).

Worked examples

Beginner

Due dates of purchase invoices, 10 working days

For Veldhuis Installatie BV you test whether suppliers were paid on time. All supplier agreements say payment is due 10 working days after the invoice date, so you recalculate the due date of each invoice in column D and compare it with the payment date in the bank file.

Sheet excerpt: D2 holds the formula
RowABCDE
1InvoiceSupplierInvoice dateDue date
226-0102Kabelgroothandel Smit2 Feb 202616 Feb 202616 Feb 2026=WORKDAY(C2, 10)=WORKDAY(C2; 10)
326-0118Pijp & Fitting Aalbers12 Feb 2026
426-0131Elektra Onderdelen Yilmaz20 Feb 2026
526-0156Gereedschap Raman4 Mar 2026
6
Formula cell (D2)InputNote: No Dutch public holiday falls between Feb 2 and Mar 18, 2026, so this example leaves out the holidays argument.

Formula in D2

=WORKDAY(C2, 10)
=WORKDAY(C2; 10)

Result: 16 Feb 2026

Step by step
  1. C2 holds Monday Feb 2, 2026, serial number 46055. That is the start_date, and days is 10.
  2. The start day is not counted. Tuesday Feb 3 is working day 1, Wednesday is 2, Thursday is 3 and Friday Feb 6 is 4.
  3. Saturday Feb 7 and Sunday Feb 8 are skipped. Monday Feb 9 is 5, Tuesday is 6, Wednesday is 7, Thursday is 8 and Friday Feb 13 is 9.
  4. The next weekend is skipped as well. Monday Feb 16 is working day 10, so the count is complete: the result is Feb 16, 2026, serial number 46069, which is 46055 + 14.
  5. D2 has a date format, so it shows 16 Feb 2026 instead of 46069. Copy down: 26-0118 (Thursday Feb 12) becomes Thursday Feb 26, 26-0131 (Friday Feb 20) becomes Friday Mar 6 and 26-0156 (Wednesday Mar 4) becomes Wednesday Mar 18.

Watch out: If an invoice date was imported as text, for example "02-02-2026" left-aligned in the cell, Excel usually reads it as a date according to the regional setting. The real risk is a silent swap of day and month ("02-03-2026" read as 3 February instead of 2 March), or text Excel cannot read, which returns #VALUE!. Convert the column to real dates first.

More on this example: why it works, 1 more pitfall, 2 variations

Why it works

WORKDAY counts working days, not calendar days, so each weekend inside the period pushes the date back by 2 days. With 10 working days, no holidays and a start date on a weekday that is exactly two calendar weeks, which is why every due date here falls on the same weekday as its invoice date.

More to watch out for

  • Do not read 10 working days as 14 calendar days in a period with a holiday. The two only agree when no holiday falls inside the period.

Variations

=WORKDAY(C2 - 1, 10)
=WORKDAY(C2 - 1; 10)

Use it when the contract counts the invoice date itself as day 1. For 26-0102 the due date becomes Friday Feb 13 instead of Monday Feb 16.

=C2 + 14
=C2 + 14

Use it when the agreement says 14 days, not working days. It does not skip weekends, so it is the wrong test for a term in working days.

Intermediate

Due dates of sales invoices around Dutch public holidays

Veldhuis Installatie BV gives its customers a term of 10 working days, held in J1. For the receivables aging you recalculate each due date and skip the Dutch public holidays in F2:F6:

  • Christmas Day
  • Boxing Day
  • New Year's Day
  • Easter Monday
  • King's Day

Invoice V-25-0921 is dated on a Saturday.

Sheet excerpt: D3 holds the formula
RowABCDEFGHIJK
1InvoiceCustomerInvoice dateDue dateHolidaysTerm (working days)1010
2V-25-0910De Boer Bouw12 Dec 202525 Dec 2025Christmas Day
3V-25-0921Woonstichting Zuidwijk20 Dec 20257 Jan 20267 Jan 2026=WORKDAY(C3, $J$1, $F$2:$F$6)=WORKDAY(C3; $J$1; $F$2:$F$6)26 Dec 2025Boxing Day
4V-26-0204Kramer Vastgoed27 Mar 20261 Jan 2026New Year's Day
5V-26-0229Hotel Maasoever14 Apr 20266 Apr 2026Easter Monday
627 Apr 2026King's Day
7
Formula cell (D3)InputNote: F2:F6 hold dates: Thu Dec 25, 2025, Fri Dec 26, 2025, Thu Jan 1, 2026, Mon Apr 6, 2026 and Mon Apr 27, 2026. Good Friday (Apr 3, 2026) is not a national holiday and is not in the list.

Formula in D3

=WORKDAY(C3, $J$1, $F$2:$F$6)
=WORKDAY(C3; $J$1; $F$2:$F$6)

Result: 7 Jan 2026

Step by step
  1. The formula sits in D3, so C3 is Saturday Dec 20, 2025. The days argument comes from $J$1 (10) and the holidays from $F$2:$F$6, both locked so they stay put when you copy down.
  2. The start date is a Saturday. Counting begins with the next day, and weekend days never count, so Monday Dec 22 is working day 1, Tuesday is 2 and Wednesday Dec 24 is 3. This is the same as if the invoice were dated Friday Dec 19.
  3. Thursday Dec 25 and Friday Dec 26 are in F2:F3 and are skipped, and so are Saturday and Sunday. Monday Dec 29 is 4, Tuesday is 5 and Wednesday Dec 31 is 6.
  4. Thursday Jan 1, 2026 is in F4 and is skipped. Friday Jan 2 is 7, the weekend is skipped, Monday Jan 5 is 8, Tuesday is 9 and Wednesday Jan 7 is 10. The result is Jan 7, 2026.
  5. Without the holidays argument the result would be Friday Jan 2, 2026: three working days too early, so the customer would be shown as overdue while the term is still running.
  6. Copy down. V-25-0910 (Friday Dec 12) becomes Tuesday Dec 30. V-26-0204 (Friday Mar 27) becomes Monday Apr 13, because Easter Monday Apr 6 is skipped. V-26-0229 (Tuesday Apr 14) becomes Wednesday Apr 29, because King's Day on Monday Apr 27 is skipped.

Watch out: The list only holds the holidays of this period. For invoices in another year, the dates are wrong: Easter, Ascension Day and Whit Monday move every year. Add the new year's dates before you copy the formula to older or newer invoices.

More on this example: why it works, 2 more pitfalls

Why it works

The holidays argument takes the whole list in one range, and Excel removes only those dates that fall on a counted weekday, so a holiday on a weekend does no harm. Keeping the term in J1 and the holidays in F2:F6 means one change updates every row, and the list can be reused for other date functions in the same workbook.

More to watch out for

  • Good Friday is not a national holiday, so WORKDAY counts it unless you add it. If the client closes that day, put it in the list; otherwise V-26-0204 would be one day off.
  • If the holidays range starts at F1, the header text makes the formula return #VALUE!. Start the range at the first date.

Advanced

Start of the last 5 working days of each month

In the revenue cut-off test at Veldhuis Installatie BV you select invoices from the last 5 working days of each month. For every month you need the first day of that window.

You know one date in the month from the ledger extract; the holidays are in H2:H4 and the number of working days in F1.

Sheet excerpt: C4 holds the formula
RowABCDEFGHIJ
1MonthExtract dateWindow startsWorking days in window55Holidays
2March18 Mar 202627 Apr 2026King's Day
3April9 Apr 202614 May 2026Ascension Day
4May12 May 202622 May 202622 May 2026=WORKDAY(EOMONTH(B4, 0) + 1, -$F$1, $H$2:$H$4)=WORKDAY(EOMONTH(B4; 0) + 1; -$F$1; $H$2:$H$4)25 May 2026Whit Monday
5June16 Jun 2026
6
Formula cell (C4)InputNote: H2:H4 hold dates: Mon Apr 27, 2026, Thu May 14, 2026 and Mon May 25, 2026.

Formula in C4

=WORKDAY(EOMONTH(B4, 0) + 1, -$F$1, $H$2:$H$4)
=WORKDAY(EOMONTH(B4; 0) + 1; -$F$1; $H$2:$H$4)

Result: 22 May 2026

Step by step
  1. The formula sits in C4, so B4 is Tuesday May 12, 2026. $F$1 is 5 and $H$2:$H$4 holds the three holidays.
  2. Inside out: EOMONTH(B4, 0) moves to the last day of May, Sunday May 31, 2026.
  3. Adding 1 gives Monday Jun 1, 2026, the day after the period. That is the start_date for WORKDAY, because the start day itself is not counted and the last day of the month must be able to count.
  4. -$F$1 is -5, so WORKDAY steps backward. Sunday May 31 and Saturday May 30 are skipped; Friday May 29 is 1, Thursday is 2, Wednesday is 3 and Tuesday May 26 is 4.
  5. Monday May 25 is in $H$2:$H$4 (Whit Monday) and is skipped, and so is the weekend before it. Friday May 22 is 5. The result is May 22, 2026, so the window is May 22 to May 29: the working days 22, 26, 27, 28 and 29.
  6. Copy down. March gives Wednesday Mar 25, April gives Thursday Apr 23 (King's Day on Monday Apr 27 is skipped) and June gives Wednesday Jun 24.

Watch out: Leaving out the holidays argument gives no error. May would start on Monday May 25 and April on Friday Apr 24, so the windows hold only 4 working days and invoices at the start of the window drop out of your test.

More on this example: why it works, 2 more pitfalls, 1 variation

Why it works

A negative days argument makes WORKDAY look back from a date, and starting from the day after the month end makes the month's last day the first one that can be counted, whether it is a working day or not. EOMONTH finds that month end from any date in the month, so the extract date does not have to be the last day.

More to watch out for

  • Another mistake is leaving out the + 1. It looks right for May, where the month ends on a Sunday, but June ends on Tuesday Jun 30 and WORKDAY(Jun 30, -5) gives Tuesday Jun 23: a window of 6 working days.
  • Writing $F$1 without the minus sign moves forward, and the date lands in the next month without any warning.

Variations

=WORKDAY(EOMONTH(B4, 0), $F$1, $H$2:$H$4)
=WORKDAY(EOMONTH(B4; 0); $F$1; $H$2:$H$4)

The window after the period end: the 5th working day after the month end, for the subsequent-events period. For the May row this is Friday Jun 5, 2026.

MasterExcel 2010 or later (This example needs Excel 2010 or later)

Repair deadlines for a service desk closed Sunday and Monday

The service desk of Veldhuis Installatie BV works Tuesday to Saturday and promises to complete a repair within 3 working days of the report. You test the service level for the rows below. The holidays are in G2:G3 and the 3 days are in G1.

Ticket T-3103 was reported on Saturday May 9, 2026 and completed on Friday May 15.

Sheet excerpt: D4 holds the formula
RowABCDEFGH
1TicketReportedCompletedWithin the norm?Norm (working days)33
2T-31016 May 20269 May 2026Holidays14 May 2026
3T-31028 May 202615 May 202625 May 2026
4T-31039 May 202615 May 2026On time=IF(C4 > WORKDAY.INTL(B4, $G$1, "1000001", $G$2:$G$3), "Late", "On time")=IF(C4 > WORKDAY.INTL(B4; $G$1; "1000001"; $G$2:$G$3); "Late"; "On time")
5T-310418 May 202622 May 2026
6T-310522 May 202627 May 2026
7
Formula cell (D4)InputNote: G2:G3 hold dates: Ascension Day (Thu May 14, 2026) and Whit Monday (Mon May 25, 2026). Whit Monday falls on a day the desk is closed anyway. WORKDAY.INTL needs Excel 2010 or later.

Formula in D4

=IF(C4 > WORKDAY.INTL(B4, $G$1, "1000001", $G$2:$G$3), "Late", "On time")
=IF(C4 > WORKDAY.INTL(B4; $G$1; "1000001"; $G$2:$G$3); "Late"; "On time")

Result: On time

Step by step
  1. The formula sits in D4, so B4 is Saturday May 9, 2026 and C4 is Friday May 15. For the norm, $G$1 is 3, and $G$2:$G$3 holds the holidays Thursday May 14 and Monday May 25.
  2. The weekend text "1000001" has 7 characters, one per weekday from Monday to Sunday. A 1 marks a day off: Monday (first character) and Sunday (last character). Tuesday to Saturday are working days, so Saturday May 9 is a normal working day for this desk.
  3. WORKDAY.INTL does not count the start day. Sunday May 10 and Monday May 11 are closed. Tuesday May 12 is working day 1 and Wednesday May 13 is 2.
  4. Thursday May 14 is in $G$2:$G$3 and is skipped. Friday May 15 is working day 3, so the deadline is Friday May 15, 2026.
  5. IF compares C4, Friday May 15, with that deadline, Friday May 15. C4 is not later than the deadline, so the test is FALSE and the formula returns the text for on time. A repair on the deadline day still meets the norm.
  6. Plain WORKDAY would give Wednesday May 13 for this ticket (Monday May 11 is 1, Tuesday is 2, Wednesday is 3) and flag it as late.

    Copy down: T-3102 has deadline Wednesday May 13 and was completed on May 15, so it is late; T-3104 was reported on a closed Monday and has deadline Thursday May 21, so completion on May 22 is late.

Watch out: A different mistake is using WORKDAY, or the default weekend code 1, for this desk. It runs without an error, treats Saturday as closed and Monday as open, and moves T-3103 to a deadline of Wednesday May 13, so ticket T-3103 is reported as late when it met the norm.

More on this example: why it works, 2 more pitfalls, 2 variations

Why it works

WORKDAY.INTL takes the weekend as a code or as a 7-character text, so any pattern of days off works; WORKDAY cannot do this because its weekend is fixed at Saturday and Sunday. Putting the call inside the IF keeps deadline and test in one cell, so no helper column is needed.

Do not use this construction when the norm is in hours, or when each engineer has a different roster: the function knows one pattern for all rows, and a calendar table with one row per date is then the better tool. If you only need to test compliance and not the deadline itself, NETWORKDAYS.INTL counts the elapsed working days between the two dates with the same weekend text.

More to watch out for

  • Type 1000001 into a cell and Excel stores the number 1,000,0011.000.001, not the 7-character text. A number is read as a numeric weekend code, and 1,000,0011.000.001 is not one, so the pattern is not applied and the formula fails. Microsoft documents #VALUE! for a weekend string of invalid length or with invalid characters.

    The code must be text: keep it in quotation marks inside the formula, or use the code 2 for Sunday and Monday.

  • The text starts on Monday. Reading it from Sunday, as in a US calendar, flips the days off without any error.

Variations

=WORKDAY.INTL(B4, $G$1, 2, $G$2:$G$3)
=WORKDAY.INTL(B4; $G$1; 2; $G$2:$G$3)

Code 2 means Sunday and Monday off and gives the same deadline, Friday May 15, 2026. Prefer the text form for patterns without a code, such as Tuesday and Friday off.

=WORKDAY.INTL(B4, $G$1, "1000001", $G$2:$G$3)
=WORKDAY.INTL(B4; $G$1; "1000001"; $G$2:$G$3)

Put this in a helper column and fill it down to see the deadline itself for all five tickets: Sat 9 May, Wed 13 May, Fri 15 May, Thu 21 May and Wed 27 May 2026. Compared with the completion dates, only T-3102 and T-3104 are late.

Common mistakes

Common mistakes
SymptomCauseFix
A number such as 46069 instead of a dateThe cell shows a number such as 46069 instead of a date.WORKDAY returns a serial number. Give the cell a date format (Ctrl+1, then Date); the value itself is already correct.
Day 1 lands a working day later than expectedAn invoice dated Monday with 10 working days comes out on a Monday two weeks later, while you expected the Friday before it.Day 1 is Tuesday. If the contract counts the invoice date as day 1, use WORKDAY(start_date - 1, days).
Result a day or more too early around holidaysThe dates look right but the result is one or more days too early around Easter, King's Day or Christmas.Without the holidays argument Excel treats every Monday to Friday as a working day. Keep a holiday list per year, because Easter, Ascension Day and Whit Monday move, and refer to it with an absolute reference such as $F$2:$F$6.
#VALUE! although the formula looks correctThe result is #VALUE! although the formula looks correct.One of the dates is text that Excel cannot read as a date under your regional setting, often an imported date, or the holidays range includes a header cell. Excel reads many date-like texts without complaint, so a #VALUE! points to text it could not read. Check with ISNUMBER on the date and start the holidays range on the first real date.