Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
Bonjour Sabrina,
Tu as 2 possibilités pour résoudre ton problème:
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
Si j'ai bien compris, tu as une seul expression?
Qu'as-tu comme dimension?
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
Bonjour Sabrina,
Tu as 2 possibilités pour résoudre ton problème:
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
Aaaah ! Ok je vois pourquoi ça bloquait.
En tout cas, merci de ton aide !