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

Isoler une date pour calculer une différence entre deux dates

     Bonjour à tous,

J'ai (encore!) besoin de vos conseils

J'ai plusieurs tableaux excel que j'importe sous QV qui ont un format de ce type :

    

Numéro de commandeDate de récéption commandeNom-prénomdate d'envoi CV
123/03/2018Poire01/04/2018
230/01/2018Pommes 02/02/2018
230/01/2018Cerise04/02/2018
331/01/2018Fraise07/02/2018
123/03/2018Citron05/04/2018

J'aimerais calculer le délai en jour entre la date de réception et la date d'envoi du tout premier CV. Par exemple sur mon tableau ce serait la ligne de  Poire, puis celles de Pommes et enfin Fraise.

Je ne trouve pas comment prendre en compte seulement la date la plus ancienne dans ma colonne date d'envoi CV. J'ai pensé à un Set analysis mais je ne trouve pas....

D'avance merci pour votre aide !

Céline

8 Replies
lcloatre
Partner - Creator III
Partner - Creator III

Bonjour,

Il faut que tu procèdes ainsi :

- Charger le fichier dans une table temporaire.

- Charger les données de cette table temporaire dans une seconde table en ajoutant une colonne avec le min de la date d'envoi du CV.

- Calculer le délai et supprimer éventuellement la date d'envoi du CV la plus ancienne..

Anonymous
Not applicable
Author

Bonjour Laurent,

Donc si je comprends bien (je suis encore un peu novice....)

Dans mon script je crée une table ou je charge mes données

Ensuite je créer une seconde table ou  je mets une notion de minimum sur la date d'envoi du CV

Et après  dans une expression je calcul le délais ou je le fais directement dans le script ?

Je dois supprimer les tables temporaires ?

(j'avoue c'est un peu flou pour moi )

christophebrault
Specialist
Specialist

Bonjour Céline,

Pour compléter la réponse de Laurent et te donner un exemple de script dans ton cas :

// Chargement de la table d'origine (à modifier dans ton cas)

CSV:

LOAD * Inline [

Numéro de Commande, Date de réception commande, Nom Prénom,Date d'envoi CV

1, 23/03/2018, Poire, 01/04/2018

2, 30/01/2018, Pommes, 02/02/2018

2, 30/01/2018, Cerise, 04/02/2018

3, 31/01/2018, Fraise, 07/02/2018

1, 23/03/2018, Citron, 05/04/2018

];


// Réduction de la table au niveau de la commande en gardant seulement la date d'envoi CV la plus basse (GROUP BY)

TEMP:

LOAD "Numéro de Commande",

"Date de réception commande",

     Min("Date d'envoi CV") as "Date d'envoi CV"

Resident CSV

Group By "Numéro de Commande",

"Date de réception commande";


// Calcul du délai entre les deux dates

FINAL:

LOAD "Numéro de Commande",

"Date de réception commande",

     "Date d'envoi CV",

     "Date d'envoi CV" - "Date de réception commande" as Délai

Resident TEMP;

// On ramène dans la table le Nom Prénom grâce à deux champs clés : Numéro de Commande et Date d'envoi CV

left join(FINAL)

LOAD "Numéro de Commande",

"Date d'envoi CV",

     "Nom Prénom"

Resident CSV;

Drop tables CSV, TEMP;    // Suppression des tables inutiles



Le résultat :


Capture.PNG

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
Anonymous
Not applicable
Author

Bonjour Christophe ,

J'y suis presque !

Lorsque je recharge mes données, il me note cette anomalie (alors que j'ai l'impression qu'il me fait bien le calcul car j'ai des données qui s'affichent et qui ont l'air à priori correcte):

image001 (2).png

Voici mon script :

//Création table CSV
CSV :
LOAD [Référence commande],
[Nature de la commande],
[Région],
Agence,
[Date de la communication de la demande],
[Nom Prénom],
[Date envoi
(auprès du client)]
,


FROM
[xxxx.xlsx]
(
ooxml, embedded labels, table is [3-Profils transmis ]);

// Réduction de la table au niveau de la commande en gardant seulement la date d'envoi CV la plus basse (GROUP BY)
TEMP:
LOAD  [Référence commande],
[Région],
[Date de la communication de la demande],
Min([[Date envoi
(auprès du client)]
) as [Date d'envoi]
Resident CSV
Group By  [Référence commande],
[Région],
[Date de la communication de la demande];

// Calcul du délai entre les deux dates
FINAL:
LOAD  [Référence commande],
[Région],
[Date de la communication de la demande],
[Date d'envoi],
[Date d'envoi]- [[Date de la communication de la demande] as [Délai]
Resident TEMP;
// On ramène dans la table le Nom Prénom grâce à deux champs clés : Numéro de Commande et Date d'envoi CV
left join(FINAL)
LOAD  [Référence commande],
[Région],
[Délai],
[Nom Prénom]
Resident CSV;
Drop tables CSV, TEMP;    // Suppression des tables inutiles







D'avace merci  beaucoup !

christophebrault
Specialist
Specialist

Il faut juste enlever le Délai dans le left join final et ça devrait être bon

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
Anonymous
Not applicable
Author

ça fonctionne !!!!

Merci beaucoup à vous deux!

lcloatre
Partner - Creator III
Partner - Creator III

Bonjour Céline.

Maintenant que ça fonctionne, il faut mettre la question en mode "résolue". ;o)

Anonymous
Not applicable
Author

effectivement j'ai un peu oublié cette étape , merci du rappel !