Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
jmialoundama
Specialist
Specialist

Rank fonction : classement top 3

Bonjour,

J'ai le tableau suivant :

Capture.JPG

Je souhaiterai afficher uniquement les 3 premiers c'est  à dire

Nom - prenom           Mois      Panier moyen       Rank(classement)

-DARRAS Sophie      fev.                  49,20€               1

- Bedos Frederic        oct.                  47,97€               2

- AKANNI Ridwane    dec.                 46,06€               3

Cependant lorsque j'utilise la fonction "RANK" mon résultat est faussé : rank(sum([_CA TTC net <>0]) / sum([_Nb. Tickets <>0])

23 Replies
brunobertels
Master
Master

Bonjour

le problème vient de l'ajout de la dimension Mois

Voir ex ci dessous qui fonctionne pour moi :

J'ai une dimension conseiller limitée à 3

une mesure Sum( CA prospect)

une mesure Rank

Et j'affiche le mois avec la fonction :

FirstSortedValue(Mois,

aggr(sum([CA prospect]),Conseiller,Mois))

Capture.PNG

jmialoundama
Specialist
Specialist
Author

Bonjour Youssef;

Désolée pour la réponse tardive !

Voici mon script de chargement:

Temp_top_indicateurs:

Let varCurrentYear = Year(Today());

LOAD

[Id. Collab],

weekyear(Jour) & '-' & right('0' & week(Jour),2)            as "Année-semaine (cal)2",

month(Jour)                                                     as "Mois (cal)2",

sum([_CA TTC net <>0]) / sum([_Nb. Tickets <>0])                 as "Panier moyen"

From 'lib://QVData/Fait.qvd' (qvd)

Where weekyear(Jour)=$(varCurrentYear)

group by [Id. Collab],

        weekyear(Jour) & '-' & right('0' & week(Jour),2),

         month(Jour);

          ;

Top_indicateurs:

NoConcatenate

LOAD *,

if([Mois (cal)2]= Previous([Mois (cal)2]), Peek('Rank')+1,1) as Rank

Resident Temp_top_indicateurs

Order by [Id. Collab], "Panier moyen" desc;

DROP Table Temp_top_indicateurs;

Et voici quelques données

Top Indicateur:

LOAD * INLINE [

    ID. Collab, Panier moyen,mois(cal)2

    2,105.6,févr.

    1, 85.3,mars

    38,58.62,avr.

    32, 57.71,nov,

    2, 57.08,août

    45, 56.13,juil.

    32, 55.40,janv.

    2, 54.5,avril

    23, 54.44,mai

];

Collab:

LOAD * INLINE [

    ID. Collab, Nom, "Prénom"

    2, DARRAS,Sophie

    1, STOLIARSKI,Cyril

    38, NABET, Jéremie

    32, MOSCA,Fabio

    2, DARRAS,Sophie

    45, BEDOS,Fréderic

    32, MOSCA,Fabio

    2,DARRAS,Sophie

    23,DEVEZE,Blandine

];

Et voici ce que je devrais obtenir :

ID. Collab      Nom-Prénom                      Panier moyen    Mois(cal)2    Classement

2                          DARRAS Sophie                  105,6                    févr.                  1

1                          STIOLIARKSKI Cyril              85,3                    mars                  2

38                        NABET Jérémie                  58,61                    avr.                    3

Sauf que pour l'instant j'obtiens ceci et je ne comprends pas :

Capture.JPG

jmialoundama
Specialist
Specialist
Author

Bonjour Bruno ,

Comme je l'ai expliqué un peu plus haut à Youssef, j'ai décidé de changer mon approche par rapport au problème que j'ai.

Cependant je penses y être presque, sauf que je bloque sur un truc et je ne sais pas où.

Voici un exemple de données :

Top Indicateur:

LOAD * INLINE [

    ID. Collab, Panier moyen,mois(cal)2

    2,105.6,févr.

    1, 85.3,mars

    38,58.62,avr.

    32, 57.71,nov,

    2, 57.08,août

    45, 56.13,juil.

    32, 55.40,janv.

    2, 54.5,avril

    23, 54.44,mai

];

Collab:

LOAD * INLINE [

    ID. Collab, Nom, "Prénom"

    2, DARRAS,Sophie

    1, STOLIARSKI,Cyril

    38, NABET, Jéremie

    32, MOSCA,Fabio

    2, DARRAS,Sophie

    45, BEDOS,Fréderic

    32, MOSCA,Fabio

    2,DARRAS,Sophie

    23,DEVEZE,Blandine

];

Et voici ce que je devrais obtenir :

ID. Collab      Nom-Prénom                      Panier moyen    Mois(cal)2    Classement

2                          DARRAS Sophie                  105,6                    févr.                  1

1                          STIOLIARKSKI Cyril              85,3                    mars                  2

38                        NABET Jérémie                  58,61                    avr.                    3

Sauf que pour l'instant j'obtiens ceci et je ne comprends pas :

Capture.JPG

Merci d'avance pour éclaircissements

sfatoux72
Partner - Specialist
Partner - Specialist

Salut,

utilise plutôt ça comme "Top_indicateurs", il faut ordonner en premier lieu par "Panier moyen" et j'ai simplifier l'expression pour Rank :

Top_indicateurs:

NoConcatenate

LOAD *,

RowNo() as Rank

Resident Temp_top_indicateurs

Order by "Panier moyen" desc, [Id. Collab];

brunobertels
Master
Master

Bonjour Juliana

Voici en pièce jointe une app test avec le tableau que tu demandes

ID : Dimension ID avec une limitation à 3 sur la dimension

Nom Prénom : Dimension Nom & ' ' & "Prénom"

Panier Moyen : Mesure

     max(aggr(([Panier moyen]),[mois(cal)2],[ID. Collab]))

Mois : Mesure

     FirstSortedValue([mois(cal)2],- aggr(max([Panier moyen]),[mois(cal)2],[ID. Collab]))

Classement : Mesure

rank (total max(aggr(([Panier moyen]),[mois(cal)2],[ID. Collab])) )

et tu auras ceci :

Capture.PNG

jmialoundama
Specialist
Specialist
Author

Bonjour Bruno,

Merci pour ton retour, ta méthode ne fonctionne pas exactement comme je le souhaiterai car je ne sais pas pourquoi mais il y'a toujours un problème avec la dimension mois.

Mais je te remercie pour tes retours

brunobertels
Master
Master

Bonjour

Attention dans mon modèle le champ Mois n'est pas une dimension mais une Mesure c'est peut être pour çà que cela ne marche pas

Bruno

jmialoundama
Specialist
Specialist
Author

Bonjour Bruno,

Désolé pour le retour tardif de ma part.

J'ai pu tester ta solution et elle fonctionne parfaitement.

Cependant j'ai pu constater un soucis, c'est lorsqu'un ID est deux fois meilleur panier moyen de l'année ça pose problème.

Exemple ;

    ID     NOM - Prénom         Panier moyen    mois       classement

     2    DARRAS Sophie             105.60        fevr                 1

     2      DARRAS Sophie              90.30        mars                2

    38     NABET    Jérémie            81.20        avril                 3

Lorsque j'utilise les formules au niveau des mesures et bien je perds la deuxième place DARRAS Sophie et elle est remplacé par un autre collaborateurs qui ne fais pas du tout des premiers au niveau du panier moyen.

Je me posais la question , si ce n'était pas du au FirstValue qui est utilisé dans la mesure "MOIS" ?

Merci d'avance

brunobertels
Master
Master

Bonjour

Oui je pense que c'est cette fonction qui du coup fausse l'affichage Et du coup là je n'ai pas de solution j'ai essayé plusieurs trucs et rien à faire je sèche ... désolé

Bruno

sfatoux72
Partner - Specialist
Partner - Specialist

C'est normal, tu prends les ID correspondant au 3 premiers panier moyen. Tu auras donc également les panier moyen de ces ID pour les mois moins bon.

Essaye comme ceci (voir pièce jointe) :