networkdays - fonction de script et fonction de graphique
La fonction networkdays renvoie le nombre de jours ouvrables (du lundi au vendredi) compris entre les valeurs start_date et end_date (incluses) en tenant compte de tous les arguments holiday facultatifs répertoriés.
networkdays
(start_date, end_date [, holiday])
entier
La fonction networkdays présente les restrictions suivantes :
Il n'existe pas de méthode pour modifier les jours ouvrables (workdays). En d'autres termes, il n'est pas possible de modifier la fonction pour les régions ou les situations pour lesquelles les jours ouvrables ne correspondent pas à la plage du lundi au vendredi.
Le paramètre holiday doit être une constante de type chaîne. Les expressions ne sont pas acceptées.
Arguments
Argument
Description
start_date
Date de début à évaluer.
end_date
Date de fin à évaluer.
holiday
Périodes de congé à exclure des jours ouvrables. Un congé est indiqué sous forme de date constante de type chaîne. Vous pouvez spécifier plusieurs dates de congé si vous les séparez par des virgules.
La fonction networkdays() est couramment utilisée dans le cadre d'une expression lorsque l'utilisateur souhaite que le calcul utilise le nombre de jours ouvrables de la semaine qui ont lieu entre deux dates. Par exemple, si un utilisateur souhaite calculer le salaire total d'un employé en contrat PAYE (pay-as-you-earn - retenue à la source de l'impôt sur les salaires).
Exemples de fonction
Exemple
Résultat
networkdays ('12/19/2013', '01/07/2014')
Renvoie 14. Cet exemple ne prend pas en compte la période de congé.
Renvoie 10. Cet exemple prend en compte deux périodes de congé.
Paramètres régionaux
Sauf indication contraire, les exemples de cette rubrique utilisent le format de date suivant : MM/JJ/AAAA. Le format de date est indiqué dans l'instruction SET DateFormat de votre script de chargement de données. Le format de date par défaut peut être différent dans votre système en raison de vos paramètres régionaux et d'autres facteurs. Vous pouvez modifier les formats utilisés dans les exemples ci-dessous en fonction de vos besoins. Ou vous pouvez modifier les formats utilisés dans votre script de chargement pour qu'ils correspondent à ceux de ces exemples. Pour plus d'informations, voir Modification des paramètres régionaux des applications et des scripts.
Les paramètres régionaux par défaut des applications sont basés sur le profil utilisateur. Ces paramètres de format régionaux ne sont pas liés à la langue affichée dans l'interface utilisateur Qlik Cloud. Qlik Cloud sera affiché dans la même langue que celle du navigateur que vous utilisez.
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Ensemble de données contenant des ID de projet, leurs dates de début et leurs dates de fin. Ces informations sont chargées dans une table appelée Projects.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
Création d'un champ supplémentaire, net_work_days, pour calculer le nombre de jours ouvrables impliqués dans chaque projet.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
start_date
end_date
net_work_days
Tableau de résultats
id
start_date
end_date
net_work_days
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
13
Étant donné qu'aucun congé n'est prévu (ils auraient été signalés dans le troisième argument de la fonction networkdays()), la fonction soustraie la valeur start_date de la valeur end_date ainsi que tous les weekends pour calculer le nombre de jours ouvrables entre les deux dates.
Le calendrier ci-dessus souligne visuellement le projet portant l'id 5. Le projet 5 commence le mercredi 10 août 2022 et se termine le 26 août 2022. Étant donné que tous les samedis et dimanches sont ignorés, cela fait un total de 13 jours ouvrables entre ces deux dates incluses.
Exemple 2 – un seul jour de congé
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Même ensemble de données et même scénario que ceux de l'exemple précédent.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
Création d'un champ supplémentaire, net_work_days, pour calculer le nombre de jours ouvrables impliqués dans chaque projet.
Dans cet exemple, il existe un jour de congé prévu le 19 août 2022.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
start_date
end_date
net_work_days
Tableau de résultats
id
start_date
end_date
net_work_days
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
12
Le seul jour de congé prévu est saisi comme troisième argument dans la fonction networkdays().
Le calendrier ci-dessus souligne visuellement le projet 5, faisant la démonstration de cet ajustement pour inclure le jour de congé. Ce jour de congé tombe pendant le projet 5, le vendredi 19 août 2022. En conséquence, la valeur net_work_days totale du projet 5 diminue d'un jour et passe de 13 à 12 jours.
Exemple 3 – plusieurs jours de congé
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Même ensemble de données et même scénario que ceux du premier exemple.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
Création d'un champ supplémentaire, net_work_days, pour calculer le nombre de jours ouvrables impliqués dans chaque projet.
Cependant, dans cet exemple, quatre jours de congé sont prévus, du 18 août au 21 août 2022.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
start_date
end_date
net_work_days
Tableau de résultats
id
start_date
end_date
net_work_days
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
11
Les quatre jours de congé prévus sont saisis sous forme de liste séparée par des virgules à partir du troisième argument dans la fonction networkdays().
Le calendrier ci-dessus souligne visuellement le projet 5, faisant la démonstration de cet ajustement pour inclure ces jours de congé. Cette période de congés prévus tombe pendant le projet 5, deux des jours de congé ayant lieu un jeudi et un vendredi. En conséquence, la valeur net_work_days totale du projet 5 passe de 13 à 11 jours.
Exemple 4 – un seul jour de congé
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Même ensemble de données et même scénario que ceux du premier exemple.
Champ de date fourni dans la variable système DateFormat au format (MM/DD/YYYY).
Il existe un jour de congé prévu le 19 août 2022.
Cependant, dans cet exemple, le même ensemble de données est chargé dans l'application. Le champ net_work_days est calculé sous forme de mesure dans un objet graphique.
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
id
start_date
end_date
Créez la mesure suivante :
= networkdays(start_date,end_date,’08/19/2022’)
Tableau de résultats
id
start_date
end_date
net_work_days
1
01/01/2022
01/18/2022
12
2
02/10/2022
02/17/2022
6
3
05/17/2022
07/05/2022
36
4
06/01/2022
06/12/2022
8
5
08/10/2022
08/26/2022
12
Le seul jour de congé prévu est saisi comme troisième argument dans la fonction networkdays().
Le calendrier ci-dessus souligne visuellement le projet 5, faisant la démonstration de cet ajustement pour inclure le jour de congé. Ce jour de congé tombe pendant le projet 5, le vendredi 19 août 2022. En conséquence, la valeur net_work_days totale du projet 5 diminue d'un jour et passe de 13 à 12 jours.
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !