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

Afficher la dernière valeur dans un KPI avec possibilité d'appliquer un filtre dessus

Bonjour,

Novice avec QLIK, j'ai un petit soucis 

j'ai besoin d'afficher dans un KPI la valeur de la dernière semaine d'un indicateur sachant que chaque semaine il y a de nouvelles données qui se rajoutent dans la base de données. Mais si je filtre par exemple sur le mois de Mai j'ai besoin que ça soit la valeur de la dernière semaine de Mai qui s'affiche (Semaine 21). Plus précisément que ça soit un tag dynamique. 

Ci-dessous la formule de l'indicateur qui est très simple ainsi qu'un exemple de jeux de données 

sum(Numerateur)/sum(denominateur)

Id 	SEMAINE 	MOIS	numérateur	Dénominateur 
XX1	21	MAI 	1	1
XX2	21	MAI 	0	1
XX3	21	MAI	1	1
YY7	21	MAI	0	1
YY8	21	MAI	1	1
WW1	22	JUIN	0	1
AA2	22	JUIN	1	1
AX3	22	JUIN	1	1
EY8	22	JUIN	1	1
YY7	22	JUIN	1	1
AW1	23	JUIN	0	1
XX2	23	JUIN	1	1
BX3	23	JUIN	1	1
EE4	23	JUIN	1	1
DH2	23	JUIN	1	1

Je vous remercie d'avance pour votre aide 

6 Replies
lowrycody
Contributor II
Contributor II

Bonjour,

Veuillez essayer cette solution.

sum({<SEMAINE={"$(=Max(SEMAINE))"}>}numerateur)/sum({<SEMAINE={"$(=Max(SEMAINE))"}>}Denominateur)

brunobertels
Master
Master

Bonjour 

En script : 

 


[Table]:

LOAD * INLINE
[
Id,SEMAINE,MOIS,numérateur,Dénominateur
XX1,21,MAI ,1,1
XX2,21,MAI ,0,1
XX3,21,MAI,1,1
YY7,21,MAI,0,1
YY8,21,MAI,1,1
WW1,22,JUIN,0,1
AA2,22,JUIN,1,1
AX3,22,JUIN,1,1
EY8,22,JUIN,1,1
YY7,22,JUIN,1,1
AW1,23,JUIN,0,1
XX2,23,JUIN,1,1
BX3,23,JUIN,1,1
EE4,23,JUIN,1,1
DH2,23,JUIN,1,1
](delimiter is ',');


left join Load

max(SEMAINE) as SEMAINE,
MOIS,
'Y' as flag

resident [Table]
group by MOIS;

Timy17
Contributor III
Contributor III
Author

Bonjour 

Merci pour votre retour 

Quand j'applique votre formule cela me renvoi la semaine 53 car dans le modèle de données la table est liée au calendrier. 

J'obtiens un résultat qui n'est pas exact. 

Cordialement,

 

 

Timy17
Contributor III
Contributor III
Author

Bonjour,

J'ai pensé au script mais vu que la table est liée à une autre table calendrier, le Max(semaine) me donne la semaine 53. Alors que j'ai besoin de lui dire de me donner la dernière semaine chargée, avec la possibilité d'appliquer un filtre. Plus précisément on est la semaine 27 c'est le résultat de la semaine 27 qui s'affiche et si j'applique un filtre sur le mois de MAI c'est le résultat de la dernière semaine du mois de MAI qui s'affiche (la semaine 21)

brunobertels
Master
Master

Bonjour 

Dans ce cas dans le script tu peux mettre un flag en partant de la semaine de la date du jour week(today()) ou de la date de rechargement week(date(reloadtime() ))

lowrycody
Contributor II
Contributor II

Oui, pour cet exemple, vous devrez sélectionner un mois pour renvoyer la semaine maximale pour le mois donné. Si vous souhaitez définir par défaut la semaine maximale pour le mois en cours sans sélection, vous pouvez ajouter quelque chose comme celui-ci. (Cela suppose que vous avez le numéro de mois si votre calendrier. Vous pouvez ajouter si vous ne le faites pas).

Désolé pour les noms des fonctions étant en anglais, je ne suis pas de langue maternelle française.

sum({<SEMAINE={"$(=Max(SEMAINE))"}, MOIS_NOMBRE={"$(=Num(Month(Today()))"}>}numerateur)/sum({<SEMAINE={"$(=Max(SEMAINE))"}, MOIS_NOMBRE={"$(=Num(Month(Today()))"}>}Denominateur)