Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik and ServiceNow Partner to Bring Trusted Enterprise Context into AI-Powered Workflows. Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
sdavinblanc
Contributor III
Contributor III

Mauvaise syntaxe dans une formule

Bonjour,

J'ai un indicateur qui cherche la plus petite valeur d'une mesure_A entre 2008 et maintenant (format Annee_Mois) avec la formule suivante : 

=Min(Aggr(Sum({<Annee_Mois={">=$(vStartDate) <=$(vAnneeMois)"}, [#mesure_A ]-={0}>}[#mesure_A ]), Annee_Mois ))

Sur ma visualisation l'utilisateur à la possibilité de filtrer par DESTINATION, REGION et DEPARTEMENT. 

Ma formule fonctionne correctement.

L'utilisateur souhaite que j'affiche l'annee_mois qui correspond à cette plus petite valeur. Sur la capture d'écran cela correspond à l'indicateur B entouré en vert. Si l'utilisateur a sélectionné une DESTINATION, une REGION et un DEPARTEMENT, le résultat est correct car je suis au niveau le plus bas de mon regroupement.

Par contre si l'utilisateur ne sélectionne pas de département mon résultat n'est plus bon. Je sais que c'est l'expression pour trouver cette année_mois ou ma mesure est la plus basse qui ne fonctionne pas mais je n'arrive pas à trouver la bonne écriture. 

Ma formule B pour trouver l'annee_mois :  

ONLY({<[#Mesure_A]={$(vPointBas2002_Autorisé_12M)}>}Annee_Mois_Libelle)

Ma variable "vPointBas2002_Autorisé_12M" est le résultat de l'expression que j'utilise pour calculer mon point le plus BAS : =Min(Aggr(Sum({<Annee_Mois={">=$(vStartDate) <=$(vAnneeMois)"}, [#mesure_A ]-={0}>}[#mesure_A ]), Annee_Mois )) .

Il faudrait que je remplace dans ma formule B l'élèment [#Mesure_A] par la formule d'aggrégation suivante : 

Aggr(Sum({<Annee_Mois={">=$(vStartDate) <=$(vAnneeMois)"}, [#mesure_A ]-={0}>}[#mesure_A ]), Annee_Mois )  mais je n'arrive pas à trouver comment l'écrire sans erreur.

Auriez vous une idée de la bonne syntaxe ?

Merci d'avance pour votre aide !

1 Solution

Accepted Solutions
brunobertels
Master
Master

Bonjour 

Pour ta demande 

"L'utilisateur souhaite que j'affiche l'annee_mois qui correspond à cette plus petite valeur."

Tu peux regarder du coté de la fonction Firstsortedvalue() 

Le principe 

Firstsortedvalue( DIMENSION , MESURE) 

La fonction renvoi la valeur de la dimension suivant le résultat de la mesure 

Essaye ceci : 

FirstsortedValue( 

Annee_Mois

,

Min(Aggr(Sum({<Annee_Mois={">=$(vStartDate) <=$(vAnneeMois)"}, [#mesure_A ]-={0}>}[#mesure_A ]), Annee_Mois ))

)

 

 

View solution in original post

2 Replies
brunobertels
Master
Master

Bonjour 

Pour ta demande 

"L'utilisateur souhaite que j'affiche l'annee_mois qui correspond à cette plus petite valeur."

Tu peux regarder du coté de la fonction Firstsortedvalue() 

Le principe 

Firstsortedvalue( DIMENSION , MESURE) 

La fonction renvoi la valeur de la dimension suivant le résultat de la mesure 

Essaye ceci : 

FirstsortedValue( 

Annee_Mois

,

Min(Aggr(Sum({<Annee_Mois={">=$(vStartDate) <=$(vAnneeMois)"}, [#mesure_A ]-={0}>}[#mesure_A ]), Annee_Mois ))

)

 

 

sdavinblanc
Contributor III
Contributor III
Author

Bonjour @brunobertels 

C'est ce que j'ai fait finalement oui et cela fonctionne très bien ! Je ne connaissais pas encore cette fonction qui peut effectivement être très utile.

Voici ma formule finale : FirstSortedValue(Annee_Mois_Libelle, Aggr(Sum({<Annee_Mois={">=$(vStartDate) <=$(vEndDate)"}, [#mesure_A ]-={0}>} [#mesure_A ]), Annee_Mois))

Bonne journée