Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
dmap_jacky
Contributor III
Contributor III

Utilisation d'une variable dans une mesure Qlik Sense?

Bonjour,

Dans Qlik sense après avoir fait une déclaration de la  variable   vDerSemaine

avec   NbSem=11 et MinString=40 et la formule :     'S' & ((NbSem-1)+ num(right(MinString(semaine),2)))   

La variable contient  apparament la valeur S50.

 

Dans un graphe si j'utilise  en étiquette  =$(vDerSemaine)   j'affiche S50

Dans l'expression  avec les deux formules suivantes

sum({<semaine={'S50'}>} Réalisé)

  ou  

sum(If(semaine='S50',Réalisé))  

 le réalisé de la semaine 50  est  correspond bien à la valeur de la semaine S50 obtenu par filtrage.

 

 

Comment  Faut - il modifier l'expression  avec la variable ?

J'ai testé sans succès plusieurs variantes de ce type

sum({<semaine={$(vDerSemaine)}>} Réalisé)

sum({<semaine={'$(vDerSemaine)'}>} Réalisé)

sans succès .

Merci de votre aide.

nota: NbSem  est obtenu par script lors du chargement et varie en fonction des ventes chargées

2 Solutions

Accepted Solutions
Taoufiq_Zarra

Bonjour ,

Je ne sais pas si j'ai bien compris, mais pour utiliser la variable en Set essayes:

 

=Sum({ <semaine= { '$( =$(vDerSemaine) )' }>}  Réalisé)

 

 

mais si le champs semaine contient que des chiffres dans ce cas 50, il faut modifier la variable ou ajouter une autre variable sans le 'S' (i.e ((NbSem-1)+ num(right(MinString(semaine),2)))  )

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉

View solution in original post

Taoufiq_Zarra

Bonjour,

c'est suffisant pour comprendre

je pense que c'est juste un problème de " " dans la variable.

J'ai mis en PJ un fichier qvf avec les variables.

normalement dans le corpus envoyé la valeur de dernière semaine est 46 donc le réalisé pour cette semaine est 76.

la valeur est calculé par :

=sum({<semaine={"$(vDerSemaine)"}>} realise)

 

Capture.PNG

 

j'espère que j'ai bien compris le problème sinon tu peux ajouter d'autres détails

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉

View solution in original post

6 Replies
Taoufiq_Zarra

Bonjour ,

Je ne sais pas si j'ai bien compris, mais pour utiliser la variable en Set essayes:

 

=Sum({ <semaine= { '$( =$(vDerSemaine) )' }>}  Réalisé)

 

 

mais si le champs semaine contient que des chiffres dans ce cas 50, il faut modifier la variable ou ajouter une autre variable sans le 'S' (i.e ((NbSem-1)+ num(right(MinString(semaine),2)))  )

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
dmap_jacky
Contributor III
Contributor III
Author

Malheureusement, la formule proposée ne donne pas le résultat escompté.

la variable vDerSemaine  contient la valeur S50 puisqu'elle est utilsée comme étiquette de la mesure créée.

 

Taoufiq_Zarra

pouvez-vous partager un extrait de données ?

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
dmap_jacky
Contributor III
Contributor III
Author

Bonjour,

Ne pouvant pas mettre les données sources, j'ai reconstruit à partir de du fichier ci-joint un exemple.

Soit les données brutes :

trimestresemaineAgencerealiseflagVte
2019.T3S36vert1091
2019.T3S37bleu981
2019.T3S38bleu1211
2019.T3S39vert2011
2019.T3S39bleu1541
2019.T4S40vert1001
2019.T4S40bleu1301
2019.T4S41bleu671
2019.T4S42bleu561
2019.T4S43vert1201
2019.T4S43bleu561
2019.T4S44vert601
2019.T4S44bleu781
2019.T4S45bleu1101
2019.T4S46vert761
2019.T4S47bleu1071
2019.T4S47vert871
2019.T4S48bleu981
2019.T4S49bleu1671
2019.T4S50vert1801
2019.T4S51bleu 0
2019.T4S52vert 0

 

le script de chargement de Qlik sense

Let vTrimEnCours='2019.T4';

ResultatMC:

LOAD

    trimestre,     semaine,     Agence,    realise,     flagVte

FROM [lib://BII Partage/DMEP/ProjetBusiness/test.xlsx]

(ooxml, embedded labels, table is Feuil1);

NoConcatenate

vtemp1:

LOAD

    count(distinct(semaine)) as NbSem

  resident ResultatMC where flagVte=1  and trimestre='$(vTrimEnCours)'

group by trimestre;

 

La création de la variable vDerSemaine  = 'S' & ((NbSem-1)+ num(right(MinString(semaine),2)))

la variable utilisée comme étiquette de mesure retourne la valeur S50

par contre comme composante d'une expression de mesure j'obtiens un ""  ?

 

 

 

resultat.png

 

Merci de ton aide

Taoufiq_Zarra

Bonjour,

c'est suffisant pour comprendre

je pense que c'est juste un problème de " " dans la variable.

J'ai mis en PJ un fichier qvf avec les variables.

normalement dans le corpus envoyé la valeur de dernière semaine est 46 donc le réalisé pour cette semaine est 76.

la valeur est calculé par :

=sum({<semaine={"$(vDerSemaine)"}>} realise)

 

Capture.PNG

 

j'espère que j'ai bien compris le problème sinon tu peux ajouter d'autres détails

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
dmap_jacky
Contributor III
Contributor III
Author

Merci Taoufiq, grâce à ton concours je viens de trouver la raison du dysfonctionnement de la variable.

L'erreur était présente dans la définition de la variable ou j'avais omis le signe égale.

En regardant ton qvf, j'ai vu que la valeur retournée était visible dans l'éditeur d'expression lorsque l'on sélectionne la variable.