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: 
Anonymous
Not applicable

Cacher certains champs d'une dimension

Bonjour,

Je rencontre un problème avec un graphique combiné.

J'ai une mesure dans laquelle je calcule la somme de données d'un mois, du mois précédent et le mois encore avant.
J'ai créé une dimension Month qui récupère les 14 derniers mois d'entrer de données et je souhaiterais n'afficher que les 12 derniers mois dans mon graphique

Or, si je récupère que 12 mois, la valeur de la mesure de février 2017 (voir image) sera nul, car elle ne pourra pas calculer les données des M-1 et M-2, à savoir décembre 2016 et janvier 2017.

Je souhaiterais donc savoir comment cacher les 2 premiers mois de mon graphique, décembre 2016 et janvier 2017.

En vous remerciant de votre réponse,

Pierrick B.

Sans titre.png

1 Solution

Accepted Solutions
sfatoux72
Partner - Specialist
Partner - Specialist

Je pense que j'ai trouvé le problème.

Essaye avec cette formule :

Sum(Aggr(

RangeSum(Above(([Design Actuals] - SUM({<[CR Type] = {'Defect'}, [Severity] = {'Minor','Bypassing','Major','Blocking'}>} RangeSum(fabs([analysis_cost]), fabs([actual_real_cost])))),0,3))

/ ([Design Actuals]*3)

, Month)

)

View solution in original post

24 Replies
marwen_garwachi
Creator II
Creator II

Bonjour,

L'image que tu affiche indique le résultat souhaité ou celui que tu as déjà ?

Marwen

brunobertels
Master
Master

Bonjour

Si je comprend bien il faut pouvoir "masquer" les mois de la dimension lorsque la mesure est = à 0

Donc essayer avec une dimension calculée

en dimension peut etre quelque chose comme çà

if(

aggr(

Tamesure

,Month)='0',Month)

sfatoux72
Partner - Specialist
Partner - Specialist

‌Faudrait plutôt l’écrire comme ceci :

if(

aggr(

TonExpression

,Month)<>0,Month)

brunobertels
Master
Master

exact

Anonymous
Not applicable
Author

Bonjour,

L'image affiché est le résultat actuel.

Pour ce qui est de l'expression, je pense avoir compris le raisonnement.

Pour la dimension de ce graphique, on utilise un If qui affiche l'expression seulement si l'expression n'est pas vide.
Cependant, ma dimension est un élément principal et si je ne dis pas de bêtises, je ne peux donc pas entrer "TonExpression" (donc ma mesure) dans le champ de ma dimension? Cela fausserais la dimension des autres graphiques non?

Ou je n'ai pas compris et il faut entrer le champ de ma dimension actuelle dedans.

Actuellement, j'utilise cette expression :

=If(

[Month] > MonthStart(today(), -16)

and

[Month] < MonthStart(today(), -1) , [Month])

Faut-il que je mette cette expression a la place de "TonExpression"? Si c'est le cas, le résultat attendu n'est pas celui obtenu.

En vous remerciant de vos réponses,

Pierrick B.

sfatoux72
Partner - Specialist
Partner - Specialist

Ok,

Dans ce cas, tu peux créer une autre dimension que tu utiliseras uniquement pour ce graphique :

=If(

[Month] > MonthStart(today(), -14)

and

[Month] < MonthStart(today(), -1) , [Month])

brunobertels
Master
Master

Bonjour

Si ta mesure est sum(ca)

if(

aggr(

sum(ca)

,Month)<>0,

If(

[Month] > MonthStart(today(), -16)

and

[Month] < MonthStart(today(), -1) , [Month])

)

Anonymous
Not applicable
Author

Bonjour,

Je ne peux pas faire "MonthStart(today(),-14)" car dans ce cas-ci, je retire de ma dimension les deux premières valeurs qui me permettent de calculer la valeur du troisième mois (février) dans mes mesures.

Je n'ai pas compris ce que représente "sum(ca)".
Je peux vous faire parvenir le champ d'une de ma mesure je pense :

(([Design Actuals]-(

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Minor'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Bypassing'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Minor'}>}fabs([actual_real_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Bypassing'}>}fabs([actual_real_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Major'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Blocking'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Major'}>}fabs([actual_real_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Blocking'}>}fabs([actual_real_cost]))

)

)+Above(([Design Actuals]-(

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Minor'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Bypassing'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Minor'}>}fabs([actual_real_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Bypassing'}>}fabs([actual_real_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Major'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Blocking'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Major'}>}fabs([actual_real_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Blocking'}>}fabs([actual_real_cost]))

)

),1)+Above(([Design Actuals]-(

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Minor'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Bypassing'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Minor'}>}fabs([actual_real_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Bypassing'}>}fabs([actual_real_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Major'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Blocking'}>}fabs([analysis_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Major'}>}fabs([actual_real_cost]))

+

SUM({<[CR Type] = {'Defect'}, [Severity] = {'Blocking'}>}fabs([actual_real_cost]))

)

),2))

/

([Design Actuals]*3)

Ayant avancé sur d'autre mesures, toutes fonctionne avec "above(,1)" et "above(,2)".

Pierrick.

sfatoux72
Partner - Specialist
Partner - Specialist

Tu peux "MonthStart(today(),-14)" dans ta dimension, si tu écrit ton expression ainsi :

Sum(Aggr(

RangeSum(Above(([Design Actuals] - SUM({<[CR Type] = {'Defect'}, [Severity] = {'Minor','Bypassing','Major','Blocking'}>} RangeSum(fabs([analysis_cost]), fabs([actual_real_cost])))),0,2))

/ ([Design Actuals]*3)

, Month)

)

J'ai pu simplifier ton expression :

  • en regroupant les Severity :     [Severity] = {'Minor','Bypassing','Major','Blocking'}
  • en regroupant les mesures :    RangeSum(fabs([analysis_cost]), fabs([actual_real_cost]))
  • en regroupant le 3 mois :         RangeSum(Above(..., 0, 2))

Et grâce à l'Aggr j'effectue le calcul pour tout les mois, indépendamment de ceux demander dans le graphique.