Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
Cirdecp007
Creator
Creator

Garder la valeur la plus récente d'un champ

Bonjour à tous,

J'ai une source qvd de données dont j'extrais un tableau comme ci-dessous :

REF CLASSEMENT MESURE MOIS ANNEE
1 A 10 1 2024
1 B 20 2 2024
2 A 10 1 2024
2 A 10 2 2024
3 B 20 1 2024
3 B 25 2 2024
4 B 15 1 2024
4 A 10 2 2024

 

Je souhaite récupérer le champ "CLASSEMENT" dans d'autres tableaux et remplacer, y compris dans le tableau ci-dessus, les valeurs les plus anciennes par celles plus récente quand elles ne sont pas identiques.

Par exemple, la REF 1 avait pour classement A en janvier 2024 mais est classée en B en février 2024.

Je veux donc que la REF 1 n'ait plus qu'un seul classement qui serait B.

Il faudrait donc charger une table avec les champs REF et CLASSEMENT mais ajouter une condition dans le script de chargement en fonction de la date ou plutôt du mois et de l'année dans mon exemple de tableau.

Evidemment, toutes les REF n'ont pas forcément une MESURE tous les mois et ne changent pas forcément de CLASSEMENT le même mois.

Avez-vous des idées ?

Je vous en remercie par avance.

2 Solutions

Accepted Solutions
brunobertels
Master
Master

Bonjour 

peut etre en utilisant cette mesure en remplacement de la colonne CLASSEMENT :

 

aggr( nodistinct aggr(FirstSortedValue( CLASSEMENT,-MOIS),REF),REF) 

 

brunobertels_0-1724069764926.png

Cdt

View solution in original post

Cirdecp007
Creator
Creator
Author

Merci. J'ai trouvé la solution en repartant de la première formule et en ajoutant une fonction date :

aggr( nodistinct aggr(FirstSortedValue( CLASSEMENT,-date('01/'&num(MOIS)&'/'&ANNEE,'DDMMYYYY')),REF),REF) 

En tout cas, ça semble sortir ce que je voulais...

 

View solution in original post

6 Replies
brunobertels
Master
Master

Bonjour 

peut etre en utilisant cette mesure en remplacement de la colonne CLASSEMENT :

 

aggr( nodistinct aggr(FirstSortedValue( CLASSEMENT,-MOIS),REF),REF) 

 

brunobertels_0-1724069764926.png

Cdt

Cirdecp007
Creator
Creator
Author

Bonjour, cela se rapproche un peu de mon besoin mais ne fonctionne pas encore parfaitement car il manque la notion d'année. J'ai donc essayé :

aggr( nodistinct aggr(FirstSortedValue( CLASSEMENT,-MOIS-ANNEE),REF),REF)  et aggr( nodistinct aggr(FirstSortedValue( CLASSEMENT,-ANNEE-MOIS),REF),REF) mais ça ne fonctionne pas. Enfin, le classement n'est pas dans l'ordre que je souhaite...

brunobertels
Master
Master

Bonjour 

 

Peut être çà 

aggr( nodistinct aggr(FirstSortedValue( CLASSEMENT,-MOIS),REF,ANNEE),REF,ANNEE)

Cirdecp007
Creator
Creator
Author

Lorsque j'utilise cette formule, j'ai bien le classement par mois mais pour chaque année. C'est-à-dire que j'ai bien le classement du mois le plus grand mais avec une valeur différente pour 2022/2023/2024.

La formule est presque bonne mais peut-être qui faut créer une date à partir du mois et de l'année genre "01/MOIS/ANNEE" et l'utiliser dans FirstSortedValue( CLASSEMENT,-"01/MOIS/ANNEE").

J'avoue ne pas avoir bien compris le - avant MOIS dans la fonction, c'est pour faire décroissant ?

Cirdecp007
Creator
Creator
Author

Merci. J'ai trouvé la solution en repartant de la première formule et en ajoutant une fonction date :

aggr( nodistinct aggr(FirstSortedValue( CLASSEMENT,-date('01/'&num(MOIS)&'/'&ANNEE,'DDMMYYYY')),REF),REF) 

En tout cas, ça semble sortir ce que je voulais...

 

brunobertels
Master
Master

Bien vue  🙂 

et oui le  - dans firstsortedvalue c'est pour inverser l'ordre et donc avoir la dernière