Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
sabrinag
Not applicable

Condition de couleur sur histogramme

Bonjour,

J'ai un problème quant au remplissage conditionnel d'un histogramme. En effet, mon graphique affiche les années N-1 et N-2 ainsi que le mois précédent. Je souhaite passer ce dernier en une autre couleur afin de le distinguer.

Mon Qlik étant mis à jour tous les mois, je dois rendre les calculs les plus automatiques possibles.. J'ai donc créé une variable 'vMAXDATE' qui reprend le maximum de la date dans le fichier (date sous forme AAAAMM).

SET vMAXDATE MAX({1}DATE);

Dans les propriétés de mon graphique, onglet EXPRESSIONS puis 'Couleur d'arrière-plan', j'ai écris la formule suivante :

If($(vMAXDATE)=DATE,RGB(231,84,32),DarkGray())

Seulement tous mes bâtons passent à la couleur RGB décrite dans le code... Alors que dans un objet texte, vMAXDATE prend bien la valeur maximum de la date.

J'ai alors essayé de passer la variable entre quotes, de la mettre après le égal, mais toujours pas de distinction.

Avant de me pencher sur l'automatisation, je réalisais la condition manuellement et cela fonctionnait.

If(DATE='201612',RGB(231,84,32),DarkGray())

Merci par avance de vos retours.

Bon après midi.

Tags (1)
1 Solution

Accepted Solutions
sfatoux72
Not applicable

Re: Condition de couleur sur histogramme

Bonjour Sabrina,

Tu as 2 possibilités pour résoudre ton problème:

  1. Tu utilise l'expression suivante pour la couleur d'arrière plan : 

                 If($(=$(vMAXDATE))=DATE,RGB(231,84,32),DarkGray())
  2. Ou alors ta variable doit commencer par '='   :  

                 =MAX({1}DATE)

Ta variable ne contient que du texte 'MAX({1}DATE)'.

Dans la première solution, on récupère le contenu de ta variable (texte) $(vMAXDATE) puis on l'interprète pour récupérer le résultat attendu $(=...).

Dans la seconde solution, on transforme ta variable texte en expression qui sera directement interprétée par $(vMAXDATE).

Ca fonctionnait dans un objet texte, car tu  l'avais écris de cette manière : =$(vMAXDATE)

Si tu l'avais écrit comme ceci ça n'aurait pas fonctionné : =vMAXDATE

4 Replies
sfatoux72
Not applicable

Re: Condition de couleur sur histogramme

Si j'ai bien compris, tu as une seul expression?

Qu'as-tu comme dimension?

sabrinag
Not applicable

Re: Condition de couleur sur histogramme

Bonjour Sébastien,

Oui, une seule expression, qui me permet d'avoir un pourcentage de données correctes sur l'ensemble des données présentes.

Ma dimension de graphique est le champs 'DATE', dont j'ai édité l'expression afin qu'il s'affiche au format 'AAAA-MM'. Voici l'expression :

=If(TOP_HISTO='1',LEFT(DATE,4)&'-'&RIGHT(DATE,2))

Le champ TOP_HISTO est créé dans ma requête SQL et permet aux lignes d'enregistrement de prendre la valeur '1' lorsque le critère de date est respecté... Lorsque ce critère n'est pas respecté, la valeur passe à 0.

J'espère que cela t'aidera. Et merci de ton aide

sfatoux72
Not applicable

Re: Condition de couleur sur histogramme

Bonjour Sabrina,

Tu as 2 possibilités pour résoudre ton problème:

  1. Tu utilise l'expression suivante pour la couleur d'arrière plan : 

                 If($(=$(vMAXDATE))=DATE,RGB(231,84,32),DarkGray())
  2. Ou alors ta variable doit commencer par '='   :  

                 =MAX({1}DATE)

Ta variable ne contient que du texte 'MAX({1}DATE)'.

Dans la première solution, on récupère le contenu de ta variable (texte) $(vMAXDATE) puis on l'interprète pour récupérer le résultat attendu $(=...).

Dans la seconde solution, on transforme ta variable texte en expression qui sera directement interprétée par $(vMAXDATE).

Ca fonctionnait dans un objet texte, car tu  l'avais écris de cette manière : =$(vMAXDATE)

Si tu l'avais écrit comme ceci ça n'aurait pas fonctionné : =vMAXDATE

sabrinag
Not applicable

Re: Condition de couleur sur histogramme

Aaaah ! Ok je vois pourquoi ça bloquait.

En tout cas, merci de ton aide !