Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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
Bertrand,
Je ne vois pas de problème particulier dans ton script.
Peux-tu nous mettre ton fichier ?
Merci
Kevin
Bonjour Kevin.
Ci-joint, mon fichier.
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
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
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
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
Laurent,
Oui et ça ne change rien. Mais la réponse de Kévin semble correcte. Je vérifie ça.
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
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