Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
jmialoundama
Specialist
Specialist

Date jours ouvrés Qlik Sense

Bonjour,

Je souhaiterai créer la 3ème colonne de ce tableau sous Qlik Sense (dans le script de chargement si possible) :

Capture.JPG

J'ai une colonne "Date envoie colis" et seconde colonne "Date livraison colis".

Ex: Si l'article a été envoyé le 03/09/2018 et que la livraison de ce colis a été effectuée le 05/09/2018 alors Ok mais si l'article est livré deux jours après,  alors "Pb reception'".

Sachant que les samedis et dimanches il n'y a pas de livraisons, donc les livraisons ont lieu que les jours ouvrés.

Ce que je souhaite écrire dans mon script est le code suivant:

Si  "date livraison colis" > "Date envoie colis"+2 alors pb livraison sinon "Ok"  mais je ne sais pas comment dire dans mon code qu'il ne faut prendre que les jours ouvrés.

Merci d'avance

1 Solution

Accepted Solutions
marinadorcassio1
Partner - Creator
Partner - Creator

Cela donne donc :


If ( Networkday("Date livraison","Date reception" ) >= 2,"Pb reception", "OK") as [Etat de la livraison]

A tester, car les dates "Date livraison" et "Date réception" sont incluses dans le calcul de différence.

En espérant t'avoir aidée,

Marina

View solution in original post

13 Replies
marinadorcassio1
Partner - Creator
Partner - Creator

Bonjour Juliana,

Tu peux utiliser la fonction networkdays()

https://help.qlik.com/fr-FR/qlikview/November2017/Subsystems/Client/Content/Scripting/DateAndTimeFun...

Avec cela tu devrais y arriver

Regards,

Marina

hamilton1
Contributor III
Contributor III

Bonjour Juliana;Pour la solution:Dans le script, tu écrirais la ligne suivante:

If (( - )<='2', 'OK',''Probleme livraison') as Statut_livraison,

NB: ( - ) => délai de livraison.Restant disponible. 

Envoyé depuis mon smartphone Samsung Galaxy.

jmialoundama
Specialist
Specialist
Author

Bonjour Guy,

Merci pour ta réponse.

Je ne comprends pas pourquoi au niveau du script tu mets "<='2'

Si je comprends bien dans le code que je souhaite donnerai qqlch du genre :



if( (networkday(date envoie) - networkday(date reception)<=2, "OK" , "Pb reception') ) as "STATUT LIVRAISON"


Cependant je ne comprends pas cette deuxième partie du code :

NB: ( - ) => délai de livraison.Restant disponible.

jmialoundama
Specialist
Specialist
Author

Bonjour Marina,

Merci pour ton retour.

Si je comprends bien la fonction "NETWORKDAY", le code que je souhaite dans le script donnerai quelque chose de ce genre :

If ( ("Date reception" > Networkday("Date livraison)+2),"Pb reception", "OK") ?

marinadorcassio1
Partner - Creator
Partner - Creator

Juliana,

As-tu pris le temps d'ouvrir le lien ?

"La fonction networkdays renvoie le nombre de jours ouvrables (du lundi au vendredi) compris entre les valeurs start_dateet end_date (incluses)"

Il faut donc que tu utilises tes dates "Date envoi" et "Date réception" pour calculer le nombre de jours ouvrés qu'il y en entre ces deux dates.

Si ce nombre est > à 2, alors tu affiches "Pb reception".


à toi de jouer

Regards,

Marina

jmialoundama
Specialist
Specialist
Author

Oui j'ai ouvert le lien que vous avez transmis mais effectivement je n'avais pas compris le fonctionnement de la fonction de ce sens.

Merci pour l’éclaircissement

hamilton1
Contributor III
Contributor III

Bo jour Juliana,Je mets '2' parce que quand je regarde ton fichier, c'est au de La de deux jour qu'il y a problème. C'est a dire, le délai normal de livraison d'un colis est de deux jours.Mais ce chiffre est soumis à ton appréciation. Si tu estime que c'est 3 jours le délai, alors tu peux mettre 3.On peut aussi remplacer le chiffre 2 par une variable.

Restant disponible

Envoyé depuis mon smartphone Samsung Galaxy.

marinadorcassio1
Partner - Creator
Partner - Creator

Cela donne donc :


If ( Networkday("Date livraison","Date reception" ) >= 2,"Pb reception", "OK") as [Etat de la livraison]

A tester, car les dates "Date livraison" et "Date réception" sont incluses dans le calcul de différence.

En espérant t'avoir aidée,

Marina

jmialoundama
Specialist
Specialist
Author

Après réflexion j'avais compris l'emploi du chiffre 2

En tout cas merci pour votre aide !