Hoe bereken je het Percent of Total als je data gefilterd is in Tableau Desktop? Wanneer je gebruik maakt van een Table Calculations zoals Percent of Total in Tableau Desktop, wordt deze calculatie berekend over wat je in de view ziet. Als je data gefilterd is, dan zal de Table Calculation alleen de berekening doen over de data die getoond wordt, en niet over al je data. Je zal dus andere waarden zien dan bij ongefilterde data. Soms wil je de weergave wel filteren, maar wil je dat je Percent of Total berekening wordt berekend over al je data. Hoe kun je dit doen?
Percent of total en filters
Wat als je alleen de Staat New York wil tonen en het Segment Corporate, maar vergeleken met alle Sales waarden in je data set? Wanneer je de weergave filtert, wordt alles in de view automatisch gefilterd, dus ook je Table Calculation. In de afbeelding hieronder zie je de sales waarde voor alle staten en segmenten, dit is 2.297K en 100%.
Wanneer je New York en Corporate selecteert, zie je alleen de Sales waarde van de geselecteerde State en het geselecteerde segment. Wanneer je kijkt naar de Table Calculation % of Total Sales (te herkennen aan het delta teken ∆) zie je dat dit nog steeds 100% is maar dat de Sales nu 78K is.
Order of Operations in Tableau en Level of Detail
De gebruikte velden Segment en State, dit zijn beide dimensie type velden. Tableau heeft een specifieke Order of Operations, eerst worden de dimensie filters toegepast en vervolgens de Table Calculations. Wat we kunnen gebruiken is een Fixed LOD, een Level of Detail expression. Deze Fixed LOD expression wordt uitgevoerd voor het dimensie filter. Daarom zal het Segment en State filter geen impact hebben op de Fixed Lod Expressie.
Table-Scoped LOD Expression
Het type LOD expression wat we gebruiken om het Percent of Total te berekenen is een Fixed expression. Je herkent een LOD expression aan de gekrulde haakjes om de formule. Dan volgt het gekozen type, in dit geval Fixed en vervolgens de dimensie declaratie, dit zijn de zogenoemde scoping keywords. In dit geval maken we gebruik van een Table-Scoped LOD expression, we kiezen dus geen dimensie waardoor het tweede deel van de formule een berekening maakt over de gehele tabel van de data source.
Eerst creëren we een veld dat het totaal aan sales laat zien, namelijk 2.297K en waar de dimensie filters geen impact op hebben. Door gebruik te maken van een Fixed LOD expression en hier geen veld aan te koppelen, zal dit veld altijd 2.2297K terug geven, het totaal aan sales. Een voorbeeld van de calculatie is in onderstaande afbeelding te zien:
Dit is te zien wanneer het {Total Sales} veld wordt gebruikt in de view:
Percent of Total Quick Table Calculation
Wanneer nu de quick table calculation, Percent of Total wordt toegepast, ziet de waarde voor New York en Corporate Sales er goed uit en is dit het getal wat we willen zien: 78K / 2.297K = 3,4%. Er zijn nu ook nog geen filters toegepast op Segment en State.
Filteren op State
Wanneer de data gefilterd wordt op de staat New York, zie je dat het {Total Sales} veld nog steeds 2.297K weergeeft. Het Sales veld en het totaal geeft nu 311K aan. De Percent of Total van de Quick Table calculation wordt daardoor echter ook aangepast, er staat nu 25.1%. Dit is niet het getal waar we naar op zoek zijn.
Calculatie schrijven voor het Percent of Total
De Quick Table Calculation maakt gebruik van alle Sales in de view, dit is 311K (78K / 311K = 25,1%). De volgende stap is om het Sales veld en het gecreëerde {Total Sales} veld te combineren om hiermee het Percent of Total uit te rekenen. Een voorbeeld van de calculatie kun je in de afbeelding hieronder zien:
Het Percent of Total voor Corporate Sales New York is 3,4%, zelfs met de toegepaste filters in de view. Het eerste deel van de calculatie is geaggregeerd SUM([Sales]), dus het tweede deel van de calculatie moet ook geaggregeerd worden.
Opdelen in kleinere stappen
Wanneer ik tegen een issue aanloop, probeer ik deze eerst in kleine stappen op te delen. Wanneer al deze losse stappen kloppen, dan combineer ik deze. Natuurlijk had je de Percent of Total calculatie direct kunnen schrijven zoals in onderstaande afbeelding, maar mocht je ergens een fout gemaakt hebben is dit nu makkelijker op te sporen. Dit is vooral van toepassing bij grote en complexe calculaties, maar een goede oefening om in kleine stappen te denken.
Klik hier om het workbook te downloaden.
Zie hier ook een tutorial met een samenvatting van deze blog:
Natuurlijk hoop ik dat je iets gehad hebt aan deze blog! Laat je weten of je er iets aan hebt gehad? Je kan mij volgen op Twitter (@MaryseMonen) en Tableau Public, dan volg ik je terug. Meer uitleg of hulp nodig? Neem deel aan onze workshops en trainingen of huur onze consultants in. Tot de volgende keer!