NETWORKDAYS.INTL function
PRO
BASIC
In Jspreadsheet Formulas Pro, the NETWORKDAYS.INTL
function counts the total number of workdays between two specified dates, allowing you to define weekend days and exclude specific holidays. This function is handy in calculating work durations or project timelines. You can customize which days of the week are considered weekends, and you can also provide a list of dates that should be excluded from the count as holidays. This function ensures a more accurate calculation of working days, taking into consideration non-standard weekends and specific days off.
Documentation
Returns the number of whole workdays between start_date and end_date using parameters to indicate which and how many days are weekend days, and a given set of holidays.
Category
Date and time
Syntax
NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
Parameter | Description |
---|---|
start_date |
The start date of the period. |
end_date |
The end date of the period. |
[weekend] |
Optional. An argument that indicates which days of the week are weekend days. Use a seven-character string with a 1 or 0 in each position representing Monday through Sunday, respectively. A 1 indicates a non-workday and 0 indicates a workday. |
[holidays] |
Optional. A range of one or more dates to exclude from the working calendar, such as state and federal holidays and floating holidays. |
Behavior
The NETWORKDAYS.INTL
function calculates the number of whole working days between two provided dates. This function allows customization of which days of the week are considered weekends (non-working days).
- If a cell is empty, the function will return an error.
- Boolean values are treated as numbers. Therefore,
TRUE
is regarded as 1 andFALSE
as 0 - It ignores time values in the date cells and considers only the date part of the cell.
- Any errors within the referenced cells will cause the
NETWORKDAYS.INTL
function to return an error. - If the start date is greater than the end date, the function will return a negative value.
Common Errors
Error | Description |
---|---|
#NUM! | Occurs if the start date is greater than the end date, or if the weekend parameter is less than 1 or greater than 7 and is not a string of seven 0s or 1s |
#VALUE! | Occurs if any of the supplied arguments are invalid, such as text values that cannot be parsed as dates, or logical values. |
Best practices
- Always ensure the start date is less than or equal to the end date to avoid a negative result or an error.
- Be clear about which days are considered non-working days in your context. The
NETWORKDAYS.INTL
function allows customization of weekends, which can be particularly useful in cultures where the weekend days are not Saturday and Sunday.- Use cell references as function arguments instead of direct inputs. This makes your spreadsheet dynamic and easily editable.
- It's a good practice to handle possible errors using error handling functions like
IFERROR
orISERROR
to avoid disruption in subsequent calculations.
Usage
A few examples using the NETWORKDAYS.INTL function.
NETWORKDAYS.INTL("2023-01-01","2023-03-15","0111110")
→ Returns the number of workdays between Jan 1, 2023 and Mar 15, 2023, treating Saturday and Sunday as weekends.
NETWORKDAYS.INTL("2023-05-01","2023-05-31","1000001")
→ Returns the number of workdays in May 2023, treating Sunday and Monday as weekends (useful in regions where weekends differ).
NETWORKDAYS.INTL(A2,B2,"1111100",["2023-12-25","2023-12-31"])
→ Returns the number of workdays between the dates in A2 and B2, excluding Friday and Saturday as weekends, plus the holidays Dec 25 and Dec 31, 2023.
Interactive Spreadsheet Demo
<html>
<script src="https://jspreadsheet.com/v11/jspreadsheet.js"></script>
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://jspreadsheet.com/v11/jspreadsheet.css" type="text/css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />
<script src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formula-pro/dist/index.min.js"></script>
<div id="spreadsheet"></div>
<script>
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('Y2QyZmE1ZjJlNGRiOWU3NzNmYzA1NjFhZmIwNGFhYmJhZGRkOWVmYmM1Zjg3YTYzMmUzZDcwMTk4ODIzMWI0MzAwMWJkNmE5Nzc3M2Y1OTZkNDU0MjBmNjM2M2ViN2U2YjVlNDY4Y2U5Y2U4NzdmN2JkN2ZlMjg5MGZhMGQxZGQsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXhNekkzTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Set the extensions
jspreadsheet.setExtensions({ formula });
// Create a new spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
worksheets: [{
data: [
[
"Start Date",
"End Date",
"Workdays"
],
[
"2024-01-15",
"2024-01-31",
"=NETWORKDAYS.INTL(A2,B2)"
],
[
"2024-02-01",
"2024-02-29",
"=NETWORKDAYS.INTL(A3,B3)"
],
[
"2024-03-01",
"2024-03-15",
"=NETWORKDAYS.INTL(A4,B4,\"0111110\")"
]
]
}]
});
</script>
</html>
import React, { useRef } from "react";
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/react";
import formula from "@jspreadsheet/formula-pro";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
// Set license
jspreadsheet.setLicense('Y2QyZmE1ZjJlNGRiOWU3NzNmYzA1NjFhZmIwNGFhYmJhZGRkOWVmYmM1Zjg3YTYzMmUzZDcwMTk4ODIzMWI0MzAwMWJkNmE5Nzc3M2Y1OTZkNDU0MjBmNjM2M2ViN2U2YjVlNDY4Y2U5Y2U4NzdmN2JkN2ZlMjg5MGZhMGQxZGQsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXhNekkzTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Set the extensions
jspreadsheet.setExtensions({ formula });
export default function App() {
// Spreadsheet array of worksheets
const spreadsheet = useRef();
// Worksheet data
const data = [
[
"Start Date",
"End Date",
"Workdays"
],
[
"2024-01-15",
"2024-01-31",
"=NETWORKDAYS.INTL(A2,B2)"
],
[
"2024-02-01",
"2024-02-29",
"=NETWORKDAYS.INTL(A3,B3)"
],
[
"2024-03-01",
"2024-03-15",
"=NETWORKDAYS.INTL(A4,B4,\"0111110\")"
]
];
// Render component
return (
<Spreadsheet ref={spreadsheet}>
<Worksheet data={data} />
</Spreadsheet>
);
}
<template>
<Spreadsheet ref="spreadsheet">
<Worksheet :data="data" />
</Spreadsheet>
</template>
<script>
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
import formula from "@jspreadsheet/formula-pro";
// Set license
jspreadsheet.setLicense('Y2QyZmE1ZjJlNGRiOWU3NzNmYzA1NjFhZmIwNGFhYmJhZGRkOWVmYmM1Zjg3YTYzMmUzZDcwMTk4ODIzMWI0MzAwMWJkNmE5Nzc3M2Y1OTZkNDU0MjBmNjM2M2ViN2U2YjVlNDY4Y2U5Y2U4NzdmN2JkN2ZlMjg5MGZhMGQxZGQsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXhNekkzTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Set the extensions
jspreadsheet.setExtensions({ formula });
export default {
components: {
Spreadsheet,
Worksheet,
},
data() {
// Worksheet data
const data = [
[
"Start Date",
"End Date",
"Workdays"
],
[
"2024-01-15",
"2024-01-31",
"=NETWORKDAYS.INTL(A2,B2)"
],
[
"2024-02-01",
"2024-02-29",
"=NETWORKDAYS.INTL(A3,B3)"
],
[
"2024-03-01",
"2024-03-15",
"=NETWORKDAYS.INTL(A4,B4,\"0111110\")"
]
]
return {
data
};
}
}
</script>
import { Component, ViewChild, ElementRef } from "@angular/core";
import jspreadsheet from "jspreadsheet";
import * as formula from "@jspreadsheet/formula-pro";
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('Y2QyZmE1ZjJlNGRiOWU3NzNmYzA1NjFhZmIwNGFhYmJhZGRkOWVmYmM1Zjg3YTYzMmUzZDcwMTk4ODIzMWI0MzAwMWJkNmE5Nzc3M2Y1OTZkNDU0MjBmNjM2M2ViN2U2YjVlNDY4Y2U5Y2U4NzdmN2JkN2ZlMjg5MGZhMGQxZGQsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVM01ETXhNekkzTENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');
// Set the extensions
jspreadsheet.setExtensions({ formula });
@Component({
standalone: true,
selector: "app-root",
template: `<div #spreadsheet></div>`
})
export class AppComponent {
@ViewChild("spreadsheet") spreadsheet: ElementRef;
// Worksheets
worksheets: jspreadsheet.worksheetInstance[];
// Create a new data grid
ngAfterViewInit() {
// Create spreadsheet
this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
worksheets: [{
data: [
[
"Start Date",
"End Date",
"Workdays"
],
[
"2024-01-15",
"2024-01-31",
"=NETWORKDAYS.INTL(A2,B2)"
],
[
"2024-02-01",
"2024-02-29",
"=NETWORKDAYS.INTL(A3,B3)"
],
[
"2024-03-01",
"2024-03-15",
"=NETWORKDAYS.INTL(A4,B4,\"0111110\")"
]
]
}]
});
}
}