De volgorde van bewerkingen in Tableau
De volgorde van bewerkingen in Tableau, soms ook wel de querypipeline genoemd, is de volgorde waarin Tableau verschillende acties uitvoert. Acties worden ook wel bewerkingen genoemd. Bij veel bewerkingen worden filters toegepast. Als u dan een weergave opbouwt en filters toevoegt, worden deze filters altijd uitgevoerd in de volgorde die is vastgelegd in de volgorde van de bewerkingen.
Een video bekijken: bekijk De volgorde van bewerkingen in Tableau begrijpen(Link wordt in een nieuw venster geopend) (in het Engels), een gratis videopresentatie van 1 uur waarin gerelateerde concepten worden geïllustreerd in Tableau.
Dit artikel bevat twee scenario's voor het bijwerken van een weergave om problemen op te lossen die voortvloeien uit de volgorde van bewerkingen: het converteren van een dimensiefilter naar een contextfilter en het converteren van een tabelberekening naar een FIXED-LOD-expressie.
De volgorde van bewerkingen (ook wel querypipeline genoemd)
Soms verwacht u dat Tableau filters in een bepaalde volgorde uitvoert, maar bepaalt de volgorde van de bewerkingen dat ze in een andere volgorde worden uitgevoerd. En dat kan onverwachte resultaten opleveren. Als dit het geval is, kunt u soms de volgorde wijzigen waarin bewerkingen in de pipeline worden uitgevoerd.
De volgorde van bewerkingen in Tableau is als volgt, van boven naar beneden:
Opmerking: in de volgorde van bewerkingen geldt het laatste datumfilter voor de hele werkmap. Contextfilters worden daarentegen per werkblad toegepast. De laatste datum wordt bepaald direct nadat de werkmap voor het eerst wordt geopend, na de databronfilters, maar vóór de contextfilters. Op dat moment wordt de datum ingesteld en wordt de laatste vooraf ingestelde datum gebruikt als dimensiefilter.
Voorbeeld 1: Een dimensiefilter omzetten in een contextfilter
In dit en in het volgende voorbeeld wordt gebruikgemaakt van de databron Voorbeeld - Superstore die bij Tableau Desktop wordt geleverd.
In dit voorbeeld beantwoordt de weergave de volgende vraag: Wat zijn de tien beste klanten op basis van totale verkoop in New York City?
De weergave bevat twee dimensiefilters, één die u maakt op het tabblad Algemeen in het dialoogvenster Filters en het andere op het tabblad Top N. Het probleem is dat deze filters gelijktijdig worden uitgevoerd, terwijl u wilt dat het algemene filter vóór het Top n-filter wordt toegepast, zodat het Top n-filter effect heeft op de resultaten die al door het algemene filter zijn gefilterd. U kunt dit oplossen door een van de filters opnieuw te definiëren als een contextfilter, zodat er een duidelijke volgorde van prioriteit ontstaat.
Hieronder vindt u de stappen voor het opbouwen van deze weergave.
Sleep Verkoop naar Kolommen.
Sleep Stad en [Klantnaam] naar Rijen.
Sleep Stad weer uit het deelvenster Data, dit keer naar Filters. Op het tabblad Algemeen van het dialoogvenster Filter stelt u het filter in op het weergeven van slechts één waarde: New York City. Dit doet u door te klikken op Geen en daarna New York City te kiezen.
Hiermee wordt een algemeen dimensiefilter gemaakt.
Klik op de werkbalk op de knop Aflopend sorteren (). Als het goed is, ziet uw weergave er dan als volgt uit:
Let op de eerste paar namen in de lijst: Ashbrook, Fuller, Vernon, etc.
Sleep nu [Klantnaam] uit het deelvenster Data naar Filters en maak een Top 10-filter, zodat alleen de tien klanten met de hoogste verkoopcijfers worden weergegeven:
Nadat u dit tweede filter hebt toegepast, ziet de weergave er goed uit, maar u ziet wel dat de weergegeven namen zijn veranderd:
Wat is er gebeurd met Peter Fuller, die eerder op de tweede plaats stond? Het was de bedoeling om de tien beste klanten in New York City te zien, maar nu worden in de weergave de tien beste klanten in het algemeen getoond.
Het probleem is dat de top en algemene dimensiefilters tegelijkertijd worden toegepast. Het zijn beide dimensiefilters en ze hebben dezelfde positie in de Tableau-volgorde van bewerkingen:
U kunt dit oplossen door het algemene dimensiefilter (op Stad) toe te voegen aan de context, dat wil zeggen dat u er een contextfilter van maakt dat vóór elk ander filter wordt uitgevoerd dat u in een werkblad maakt.
Zie Contextfilters gebruiken voor meer informatie.
Klik met de rechtermuisknop op Stad op de container Filters (Control-klik op een Mac) en kies Toevoegen aan context. Als contextfilter heeft dit filter nu voorrang op het dimensiefilter, en dus ziet u in de weergave nu wat u wilt zien:
Voorbeeld 2: Een tabelberekening omzetten in een FIXED-LOD-expressie
In dit voorbeeld beantwoordt de weergave de volgende vraag: Wat is het percentage van de totale verkoop per subcategorie van producten?
De weergave bevat een dimensiefilter en een tabelberekening. Tableau past het dimensiefilter toe voordat de tabelberekening wordt uitgevoerd. Als u de volgorde van deze bewerkingen wilt omkeren, gebruikt u een FIXED-LOD-expressie in plaats van een tabelberekening.
Hieronder vindt u de stappen voor het opbouwen van deze weergave.
Sleep Verkoop in een nieuw werkblad naar Kolommen.
Sleep Subcategorie naar Rijen.
Klik met de rechtermuisknop op SUM (Verkoop) in Kolommen en kies een snelle tabelberekening – Percentage van totaal.
Klik op de knop Aflopend sorteren () op de werkbalk om de categorieën te sorteren van hoogste naar laagste percentage.
Klik op de knop Markeringslabels tonen () op de werkbalk om de meetwaarden in de weergave weer te geven.
Als het goed is, ziet uw weergave er dan als volgt uit:
Let op de percentages voor de eerste paar items: 14,37%, 14,30%, etc.
Klik met de rechtermuisknop op Subcategorie in Rijen en kies Filter tonen.
Wis het vinkje voor Stoelen in het filter.
In de weergave zijn de percentages nu veranderd: het hoogste percentage ligt nu boven de 16%. In sommige gevallen is dit wellicht precies het resultaat dat u wilt (dat wil zeggen dat percentages opnieuw worden berekend terwijl u met het snelfilter werkt). In andere gevallen wilt u misschien dat de percentages gelijk blijven, zelfs als u items toevoegt of wegfiltert. Dat laatste was hier het geval
In de volgorde van de bewerkingen wordt een dimensiefilter toegepast vóór een tabelberekening:
Om Tableau de percentages te laten berekenen voordat het snelfilter wordt toegepast, maakt u een FIXED-LOD-expressie en past u die toe in plaats van de tabelberekening.
FIXED-LOD-expressies berekenen een waarde met gebruik van de opgegeven dimensies zonder verwijzing naar de dimensies in de weergave. In dit geval gebruikt u deze expressie om percentages voor de verschillende subcategorieën vast te stellen: percentages die niet worden beïnvloed door uw algemene dimensiefilter. Waarom? Omdat FIXED-LOD-expressies worden berekend voordat dimensiefilters worden toegepast.
Zie LOD-expressies maken in Tableau voor meer informatie.
De FIXED-LOD-expressie moet de som van Verkoop (voor een bepaalde meetwaarde) delen door de totale som van Verkoop voor de weergave. Omdat de teller wordt geaggregeerd, moet de noemer ook geaggregeerd worden en daarom schrijft u de volgende expressie:
SUM([Sales])/SUM({FIXED : SUM([Sales])})
Sla die expressie op als VasteSomVanVerkopen en sleep deze vervolgens van het deelvenster Data naar Kolommen. Zet de expressie rechts van het bestaande veld SOM(Verkoop) dat de tabelberekening gebruikt neer. (Houd beide in de weergave ter vergelijking.) De weergave ziet er nu zo uit:
De percentages in het diagram aan de rechterkant zijn nu consistent, ongeacht de velden die u wel of niet selecteert met het snelfilter. U hoeft nu alleen nog maar de waarden voor VasteSomVanVerkopen op te maken, zodat deze als percentages worden weergegeven.
Klik met de rechtermuisknop op VasteSomVanVerkopen in Kolommen en kies Opmaak. Kies in het venster Opmaak eerst de optie Nummers en vervolgens Percentage:
Dat levert uiteindelijk de volgende weergave op:
Als u items in het snelfilter Subcategorie selecteert of juist wist, veranderen de percentages in het staafdiagram aan de linkerkant, maar blijven de percentages in het staafdiagram aan de rechterkant hetzelfde.