Comment manipuler les totaux dans Tableau ?

20 avril 2018
Il arrive fréquemment que Tableau n’affiche pas le résultat que l’on souhaiterait dans les totaux ou bien que l’on souhaiterait y mettre une information différente, et détourner son usage. Et bien nous avons la solution !Partons d’un exemple concret que j’ai rencontré cette semaine chez un client. Nous voulions connaitre le nombre de régions françaises et européennes, où nous faisions des ventes pour nos sous-catégories de produits.Pour ce faire nous avons créé un calcul de niveau de détail (level of details - LOD) ( { FIXED [Catégorie], [Sous-catégorie]: COUNTD([Région])}) pour voir le niveau européen mais nous arrivions au résultat suivant:Mais le résultat en orange est Faux.Le nombre total de régions en Europe est de 127 dans le jeu de données.En effet lorsqu’on utilise un compte distinct directement avec les totaux, Tableau Desktop comprend que le résultat du total est lui même un compte distinct. Par contre, lorsqu’on l’utilise en conjonction avec un calcul de niveau de détail qui fait appel à un compte distinct, Tableau Desktop se contente de sommer les résultats générés pour chaque ligne dans le total.Pour contrer cet effet  il est possible de manipuler le résultat de la ligne « Total général » avec la formule suivante :if  min([Sous-catégorie])=max([Sous-catégorie])then sum({ FIXED [Catégorie],[Sous-catégorie]: COUNTD([Région])})else sum({ FIXED : COUNTD([Région])}) end

Comment lire cette formule ?

min([Sous-catégorie])=max([Sous-catégorie]) :Cette partie de l’expression renvoie à chaque lignes de la colonne Sous-Catégories mis à part la ligne « Total général ». En effet par exemple, le min et le max de la sous catégorie 'Art' est lui-même 'Art'.Par contre si min([Sous-catégorie])!=max([Sous-catégorie]) alors l’expression renvoie à la ligne Total général. (!= veut dire « différent de »)Donc :IF (si) min([Sous-catégorie])=max([Sous-catégorie]) (quand les lignes de sous-catégories sont renseignées)THEN (alors) sum({ FIXED [Catégorie],[Sous-catégorie]: COUNTD([Région])}) (on fait le compte distinct par catégorie et sous catégorie quelque soit le pays)ELSE (sinon quand la sous catégorie n'est pas renseignée, soit la ligne Total général) sum({ FIXED : COUNTD([Région])}) (on fait le compte distinct de toutes les régions qui existent dans jeu de données)ENDOn arrive alors au résultat attendu :Vous me direz quid des sous-taux si l'on souhaite également avoir le sous-total de chaque catégorie de produits, et bien nous allons utiliser la même logique:if  min([Sous-catégorie])=max([Sous-catégorie]) then sum({ FIXED [Catégorie],[Sous-catégorie] : COUNTD([Région])})elseif min([Catégorie])=max([Catégorie]) then sum({ FIXED [Catégorie] : COUNTD([Région])})else sum({ FIXED : COUNTD([Région])}) endVous pouvez retrouver le workbook sur Tableau Public.
Auteur:
Julien Beylat

Nous accordons une grande importance à la protection de vos données personnelles et à la transparence de l'utilisation des cookies. En continuant votre navigation, vous acceptez l'utilisation des cookies pour améliorer votre expérience, fournir des fonctionnalités de médias sociaux et analyser notre trafic. Nous partageons des informations avec nos partenaires d'analyse.

Politique relative aux cookies

Accepter
Refuser
Morning Auber, 6 Rue Auber, 75009 Paris
Abonnez-vous
à notre newsletter.
Obtenir les dernières nouvelles sur The Information Lab et l'industrie de la data
S’inscrire
© 2025 The Information Lab