Nous voilà dans la partie 2 de ce tuto : . Maintenant qu’on est au clair sur comment formater nos légendes, on peut aller encore plus loin : Comment faire si, dans un même visuel, on veut montrer des mesures qui n’ont pas la même unité (Par exemple, le profit (en €) et le profit ratio (en%)) ?
Je vais vous présenter deux options pour faire ça, et pour ces deux options, il faudra au préalable avoir créé un paramètre qui liste les valeurs que l’on veut pouvoir utiliser (ici, profit et profit ratio) ➡️
Et aussi un champ qui switch entre nos deux mesures à placer sur les lignes
sqlCASE [Param - Dimension] WHEN 'Profit' THEN SUM([Profit]) WHEN 'Profit Ratio' THEN [Profit Ratio] END
[Profit Ratio]
n’a pas d’agrégation car le champ calculé en est déjà une (SUM([Profit])/SUM([Sales])
). Option 1
Champs calculés pour chaque mesure
On peut faire le choix d’avoir un champ calculé pour chaque mesure :
sqlIF ABS(SUM([Profit])) >= 1000000 THEN '€' + STR(ROUND(SUM([Profit]) / 1000000, 1)) + "M" ELSEIF ABS(SUM([Profit])) >= 1000 THEN '€' + STR(ROUND(SUM([Profit]) / 1000, 1)) + "K" ELSE '€' + STR(ROUND(SUM([Profit]),0)) END
sqlSTR(ROUND([Profit Ratio] * 100, 0)) + "%"
Ensuite, il faut faire un troisième champ calculé qui regroupe les deux précédents avec le paramètre de sélection :
sqlCASE [Param - Dimension] WHEN 'Profit' THEN [Profit formatted] WHEN 'Profit Ratio' THEN [Profit ratio formatted] END
C’est ce dernier champ que l’on utilise dans le visuel pour le mettre sur les étiquettes de repère.
Et voilà ! Maintenant notre paramètre nous permet de sélectionner soit profit, soit profit ratio et le premier est affiché en devise tandis que le second, en pourcentage.
Option 2
Champ calculé unique
Lorsque l’on sait que nos mesures ont un comportement qui peut être traité dans un seul champ calculé, il est possible de limiter le nombre de ceux-ci et de regrouper toute la logique dans un seul calcul.
Ici, on peut le faire car même si nous voulons des devises pour le profit et du pourcentage pour le profit ratio, on sait que ce dernier sera toujours inférieur à 1 tandis que le profit, même par jour, va toujours être supérieur à 1 (bien vérifier dans chaque cas).
sqlIF ABS([Measure selection]) >= 1000000 THEN '€' + STR(ROUND([Measure selection] / 1000000, 1)) + "M" ELSEIF ABS([Measure selection]) >= 1000 THEN '€' + STR(ROUND([Measure selection] / 1000, 1)) + "K" ELSEIF ABS([Measure selection]) <= 1000 AND ABS([Measure selection]) > 1 THEN '€' + STR(ROUND([Measure selection],0)) ELSE STR(ROUND([Measure selection] * 100, 0)) + "%" END
Une fois encore, c’est
Measures formatted
que l’on utilise pour les étiquettes de repère.C’est aussi simple que ça ! Vous connaissez deux solutions pour avoir des légendes qui correspondent aux unités de vos mesures.
L’auteure : Eva Despesse
BI Engineer chez UnNest, Eva est en charge des sujets de modélisation de la donnée et du dashboarding, notamment sur Tableau et Power BI.
Ayant commencé dans une start-up, j’ai pu toucher aux flux de données de bout en bout. J’apprécie particulièrement faire les modélisations en bout de chaine avec le dashboarding pour suivre toute la chaine de transformation de données en information.
✉️ Me contacter : eva.despesse@unnest.co