4 Replies Latest reply: Feb 2, 2017 3:19 AM by Sabrina Groupama RSS

    Condition de couleur sur histogramme

    Sabrina Groupama

      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.

        • Re: Condition de couleur sur histogramme
          Sébastien Fatoux

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

          Qu'as-tu comme dimension?

            • Re: Condition de couleur sur histogramme
              Sabrina Groupama

              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

                • Re: Condition de couleur sur histogramme
                  Sébastien Fatoux

                  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