The lastworkdate function returns
the earliest ending date to achieve no_of_workdays
(Monday-Friday) if starting at start_date
taking into account any optionally listed holiday.
start_date and holiday
should be valid dates or timestamps.
There is no method to modify the lastworkdate() function for regions or scenarios that involve anything other than a work week that begins on Monday and ends on Friday.
The holiday parameter must be a string constant. It does not accept an expression.
When to use it
The lastworkdate() function is commonly used as part of an expression when the user would like to calculate the proposed end date of a project or assignment, based on when the project begins and the holidays that will occur in that period.
Regional settings
Unless otherwise specified, the examples in this topic use the following date format: MM/DD/YYYY. The date format is specified in the SET DateFormat statement in your data load script. The default date formatting may be different in your system, due to your regional settings and other factors. You can change the formats in the examples below to suit your requirements. Or you can change the formats in your load script to match these examples.
Default regional settings in apps are based on the regional system settings of the computer or server where Qlik Sense is installed. If the Qlik Sense server you are accessing is set to Sweden, the Data load editor will use Swedish regional settings for dates, time, and currency. These regional format settings are not related to the language displayed in the Qlik Sense user interface. Qlik Sense will be displayed in the same language as the browser you are using.
Arguments
Argument
Description
start_date
The start date to evaluate.
no_of_workdays
The number of working days to achieve.
holiday
Holiday periods to exclude from working days. A holiday is stated as a string constant date. You can specify multiple holiday dates, separated by commas.
Open the Data load editor and add the load script below to a new tab.
The load script contains:
A dataset containing project IDs, project start dates, and the estimated effort, in days, required for the projects. The dataset is loaded into a table called ‘Projects’.
A preceding load which contains the lastworkdate() function which is set as the field ‘end_date’ and identifies when each project is scheduled to end.
Load the data and open a sheet. Create a new table and add these fields as dimensions:
id
start_date
effort
end_date
Results table
id
start_date
effort
end_date
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/23/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
Because there are no scheduled holidays, the function adds the defined number of working days, Monday to Friday, to the start date to find the earliest possible end date.
The following calendar shows the start and end date for project 3, with the working days highlighted in green.
Example 2 - Single holiday
Overview
Open the Data load editor and add the load script below to a new tab.
The load script contains:
A dataset containing project IDs, project start dates, and the estimated effort, in days, required for the projects. The dataset is loaded into a table called ‘Projects’.
A preceding load which contains the lastworkdate() function which is set as the field ‘end_date’ and identifies when each project is scheduled to end.
However, there is one holiday scheduled on May 18, 2022. The lastworkdate() function in the preceding load includes the holiday in its third argument to identify when each project is scheduled to end.
Load the data and open a sheet. Create a new table and add these fields as dimensions:
id
start_date
effort
end_date
Results table
id
start_date
effort
end_date
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/24/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
The single scheduled holiday is entered as the third argument in the lastworkdate() function. As a result, the end date for project 3 is shifted one day later because the holiday takes place on one of the working days before the end date.
The following calendar shows the start and end date for project 3 and shows that the holiday changes the end date of the project by one day.
Example 3 - Multiple holidays
Overview
Open the Data load editor and add the load script below to a new tab.
The load script contains:
A dataset containing project IDs, project start dates, and the estimated effort, in days, required for the projects. The dataset is loaded into a table called ‘Projects’.
A preceding load which contains the lastworkdate() function which is set as the field ‘end_date’ and identifies when each project is scheduled to end.
However, there are three holidays scheduled for May 19, 20, 21, and 22. The lastworkdate() function in the preceding load includes each of the holidays in its third argument to identify when each project is scheduled to end.
Load the data and open a sheet. Create a new table and add these fields as dimensions:
id
start_date
effort
To calculate the end_date, create the following measure:
=LastWorkDate(start_date,effort,'05/18/2022')
Results table
id
start_date
effort
=LastWorkDate(start_date,effort,'05/18/2022')
1
01/01/2022
14
01/20/2022
2
02/10/2022
17
03/04/2022
3
05/17/2022
5
05/23/2022
4
06/01/2022
12
06/16/2022
5
08/10/2022
26
09/14/2022
The single scheduled holiday is entered as a measure in the chart. As a result, the end date for project 3 is shifted one day later because the holiday takes place on one of the working days before the end date.
The following calendar shows the start and end date for project 3 and shows that the holiday changes the end date of the project by one day.
Did this page help you?
If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!