Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Problème fonction NetWorkDays

Bonjour.

Dans mon script, j'utilise la fonction NetWorkDays afin de calculer un délai de jours ouvrés.

Étrangement, quand la date de début est égale à la date de fin, le délai calculé et parfois de 0 et parfois de 1. J'aimerai qu'il soit à 0 dans ces cas là. Avez-cous une idée de la raison de cette erreur ?

Voici mon script:

LOAD

  *,

  Date(Date#(DATECREATION, 'YYYYMMDD'), 'DD/MM/YYYY') as [Date de création],

  Date(Date#(DATETRT, 'YYYYMMDD'), 'DD/MM/YYYY') as [Date de traitement], // Date à laquelle le traitement a eu lieu.

  NetWorkDays(DATECREATION, DATETRT) as [Délai ouvré]; // Délai en jours ouvrés

Cordialement.

1 Solution

Accepted Solutions
kevinchevrier
Partner - Creator III
Partner - Creator III

Bertrand,

J'ai regardé de plus près tes données en Avril.

J'ai l'impression qu'il considère que les jours non ouvrés sont le Dimanche et Lundi.

Cela signifie qu'il y a donc un problème dans tes paramètres.

Je pense notamment qu'il faut que tu passes ton FirstWeekDay à 1 au lieu de 0.

SET FirstWeekDay=1;

Ensuite, si quand c'est le même jour, tu veux 0 alors fait bien -1 après ton NetWorkDays :

=NetWorkDays(DATECREATION, DATETRT)-1


Kevin

View solution in original post

23 Replies
kevinchevrier
Partner - Creator III
Partner - Creator III

Bertrand,

Je ne vois pas de problème particulier dans ton script.

Peux-tu nous mettre ton fichier ?

Merci

Kevin

Not applicable
Author

Bonjour Kevin.

Ci-joint, mon fichier.

kevinchevrier
Partner - Creator III
Partner - Creator III

Bertrand,

C'est un problème de format de date. J'ai testé sur un nouvel onglet.

Il faut que tu mettes tes dates au format 'YYYY-MM-DD'

Kevin

kevinchevrier
Partner - Creator III
Partner - Creator III

Bertrand,

C'est un problème de format de date. J'ai testé sur un nouvel onglet.

Il faut que tu mettes tes dates au format 'YYYY-MM-DD'

Kevin

lcloatre
Partner - Creator III
Partner - Creator III

Bertrand,

As-tu essayé en faisant comme ça :

LOAD

  *,

  Date(Date#(DATECREATION, 'YYYYMMDD'), 'DD/MM/YYYY') as [Date de création],

  Date(Date#(DATETRT, 'YYYYMMDD'), 'DD/MM/YYYY') as [Date de traitement], // Date à laquelle le traitement a eu lieu.

  NetWorkDays(Date(Date#(DATECREATION, 'YYYYMMDD'), 'DD/MM/YYYY'), Date(Date#(DATETRT, 'YYYYMMDD'), 'DD/MM/YYYY')) as [Délai ouvré]; // Délai en jours ouvrés

Not applicable
Author

En changeant mon script comme suit, j'ai toujours le même type d'erreur.

LOAD

  *,

  Date(Date#(DATECREATION, 'YYYYMMDD'), 'DD/MM/YYYY') as [Date de création],

  Date(Date#(DATETRT, 'YYYYMMDD'), 'DD/MM/YYYY') as [Date de traitement], // Date à laquelle le traitement a eu lieu.

  NetWorkDays(Date(Date#(DATECREATION, 'YYYYMMDD'), 'YYYY-MM-DD'), Date(Date#(DATETRT, 'YYYYMMDD'), 'YYYY-MM-DD')) as [Délai ouvré]; // Délai en jours ouvrés

Not applicable
Author

Laurent,

Oui et ça ne change rien. Mais la réponse de Kévin semble correcte. Je vérifie ça.

kevinchevrier
Partner - Creator III
Partner - Creator III

Et comme cela :

LOAD

  *,

  Date(Date#(DATECREATION, 'YYYYMMDD'), 'YYYY-MM-DD') as [Date de création],

  Date(Date#(DATETRT, 'YYYYMMDD'), 'YYYY-MM-DD') as [Date de traitement], // Date à laquelle le traitement a eu lieu.

  NetWorkDays(DATECREATION, DATETRT) as [Délai ouvré]; // Délai en jours ouvrés

Tu peux toujours créer 2 autres champ pour la date de création et la date de traitement si tu veux absolument le format YYYYMMDD en format dans ton tableau. Exemple :

LOAD

  *,

  Date(Date#(DATECREATION, 'YYYYMMDD'), 'YYYY-MM-DD') as [Date de création],

  Date(Date#(DATETRT, 'YYYYMMDD'), 'YYYY-MM-DD') as [Date de traitement], // Date à laquelle le traitement a eu lieu.

Date(Date#(DATECREATION, 'YYYYMMDD'), 'YYYYMMDD') as [Date de création 2],

  Date(Date#(DATETRT, 'YYYYMMDD'), 'YYYYMMDD') as [Date de traitement 2],

  NetWorkDays(DATECREATION, DATETRT) as [Délai ouvré]; // Délai en jours ouvrés

kevinchevrier
Partner - Creator III
Partner - Creator III

Excuse moi,

plutôt :

LOAD

  *,

  Date(Date#(DATECREATION, 'YYYYMMDD'), 'YYYY-MM-DD') as [Date de création],

  Date(Date#(DATETRT, 'YYYYMMDD'), 'YYYY-MM-DD') as [Date de traitement], // Date à laquelle le traitement a eu lieu.

  NetWorkDays([Date de création], [Date de traitement]) as [Délai ouvré]; // Délai en jours ouvrés