Tuto Tableau #1.2 : Gérer le changement d’unité des mesures avec un paramètre

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
sql
CASE [Param - Dimension] WHEN 'Profit' THEN SUM([Profit]) WHEN 'Profit Ratio' THEN [Profit Ratio] END
Measure selection
Icon
[Profit Ratio] n’a pas d’agrégation car le champ calculé en est déjà une (SUM([Profit])/SUM([Sales])).
Image without caption

Option 1 Champs calculés pour chaque mesure

On peut faire le choix d’avoir un champ calculé pour chaque mesure :
sql
IF 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
Profit formatted
sql
STR(ROUND([Profit Ratio] * 100, 0)) + "%"
Profit ratio formatted
Ensuite, il faut faire un troisième champ calculé qui regroupe les deux précédents avec le paramètre de sélection :
sql
CASE [Param - Dimension] WHEN 'Profit' THEN [Profit formatted] WHEN 'Profit Ratio' THEN [Profit ratio formatted] END
Measures formatted
C’est ce dernier champ que l’on utilise dans le visuel pour le mettre sur les étiquettes de repère.
Image without caption
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).
sql
IF 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
Measures formatted
Une fois encore, c’est Measures formatted que l’on utilise pour les étiquettes de repère.
Image without caption
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
Image without caption
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