WORKDAY Function (LibreOffice Calc)
The WORKDAY function returns a date that is a specified number of working days before or after a given date, excluding weekends and optionally holidays. It is essential for scheduling, project planning, and business calendars.
Compatibility
▾| Excel | ✔ |
| Gnumeric | ✔ |
| Google_sheets | ✔ |
| Libreoffice | ✔ |
| Numbers | ✔ |
| Onlyoffice | ✔ |
| Openoffice | ✔ |
| Wps | ✔ |
| Zoho | ✔ |
What the WORKDAY Function Does ▾
- Adds or subtracts working days
- Skips weekends automatically
- Optionally skips holidays
- Works with serial dates or text dates
- Returns a serial date number formatted as a date
It is designed to be predictable, business‑friendly, and ideal for scheduling logic.
Syntax ▾
WORKDAY(start_date; days; [holidays])
Arguments
-
start_date:
The date from which to offset. -
days:
Number of working days to add (positive) or subtract (negative). -
holidays (optional):
A range of dates to exclude (public holidays, company closures, etc.).
Basic Examples ▾
Add 10 working days
=WORKDAY("2024-01-01"; 10)
Subtract 5 working days
=WORKDAY("2024-03-15"; -5)
Using cell references
=WORKDAY(A1; B1)
Add 20 working days excluding holidays
=WORKDAY(A1; 20; C1:C10)
Advanced Examples ▾
Next business day
=WORKDAY(A1; 1)
Previous business day
=WORKDAY(A1; -1)
Add 1 month in business days (approximation)
=WORKDAY(A1; 22)
Compute project end date
=WORKDAY(StartDate; DurationDays; Holidays)
Compute shipping date excluding weekends and holidays
=WORKDAY(OrderDate; LeadTime; HolidayList)
Compute payroll date (last business day of month)
=WORKDAY(EOMONTH(A1;0)+1; -1)
Compute next Monday if date falls on weekend
=WORKDAY(A1-1; 1)
Add working days to a text date
=WORKDAY(DATEVALUE(A1); 7)
Add working days to Excel serial dates imported as text
=WORKDAY(DATE(1899;12;30)+VALUE(A1); 3)
Generate a business-day schedule
=WORKDAY($A$1; ROW(A1)-1)
Compute working days until deadline
=WORKDAY(TODAY(); B1; Holidays)
Holiday Handling ▾
Holiday list example
| C1 | C2 | C3 |
|---|---|---|
| 2024‑01‑01 | 2024‑02‑19 | 2024‑04‑01 |
Use:
=WORKDAY(A1; 10; C1:C3)
Holiday list can be:
- A range
- A single cell
- A named range
- A dynamic array
Holidays must be real dates
Use DATEVALUE if imported as text.
Edge Cases and Behavior Details ▾
WORKDAY returns a number, not text
Accepts:
- Real dates
- Serial numbers
- DATEVALUE outputs
- ISO date strings
Invalid text → Err:502
Time components are ignored
Negative days allowed
Holidays override weekends only if they fall on weekdays
WORKDAY always skips Saturday and Sunday
For custom weekends, use WORKDAY.INTL.
Large offsets allowed
=WORKDAY("2024-01-01"; 500)
WORKDAY of an error → error propagates
Common Errors and Fixes ▾
Err:502 — Invalid argument
Cause:
- Text not recognized as a date
- Non-numeric days
- Holidays contain invalid values
Fix:
- Wrap with DATEVALUE
- Clean text with TRIM or SUBSTITUTE
- Ensure holidays are real dates
Wrong result due to text dates
Fix:
- Normalize with DATEVALUE
Holidays not excluded
Cause:
- Holiday list contains text, not dates
Fix:
- Convert with DATEVALUE or VALUE
Best Practices ▾
- Use WORKDAY for business-day offsets
- Use WORKDAY.INTL for custom weekends
- Normalize text dates with DATEVALUE
- Store holidays in a dedicated range or named range
- Use WORKDAY(EOMONTH()+1; -1) for last business day of month
- Use WORKDAY with ROW() or SEQUENCE() to generate schedules
Related Patterns and Alternatives ▾
- Use WORKDAY.INTL for custom weekend definitions
- Use NETWORKDAYS for counting working days
- Use NETWORKDAYS.INTL for custom weekend counting
- Use DATE for constructing comparison dates
- Use EDATE and EOMONTH for month offsets
By mastering WORKDAY and its companion functions, you can build powerful, reliable, and fully business‑aware scheduling workflows in LibreOffice Calc.