Contextfilters gebruiken
Standaard worden alle filters die u instelt in Tableau onafhankelijk van elkaar berekend. Dat wil zeggen dat elk filter toegang heeft tot alle rijen in uw databron, zonder rekening te houden met overige filters. U kunt echter een of meer categorische filters instellen als contextfilters voor de weergave. U kunt een contextfilter beschouwen als een onafhankelijk filter. Alle overige filters die u instelt, worden gedefinieerd als afhankelijke filters, omdat ze alleen de data verwerken die via het contextfilter gaan.
U kunt een contextfilter maken om:
- Af te dwingen dat er eerst een filter wordt uitgevoerd.
- Een afhankelijk numeriek of top N-filter te maken. U kunt een contextfilter instellen om alleen de data op te nemen die u interesseren, en vervolgens een numeriek filter of een top N-filter instellen.
Stel bijvoorbeeld dat u verantwoordelijk bent voor ontbijtproducten voor een grote supermarktketen. Het is uw taak om de top 10 ontbijtproducten qua winstgevendheid voor alle winkels te vinden. Als de databron erg groot is, kunt u een contextfilter instellen om alleen ontbijtproducten op te nemen. Vervolgens kunt u een top 10-filter op basis van winst maken als afhankelijk filter. Dit filter verwerkt alleen de data die via het contextfilter gaan.
Contextfilters maken
Om een contextfilter te maken, selecteert u Toevoegen aan context vanuit het contextmenu van een bestaand categorisch filter. De context wordt één keer berekend om de weergave te genereren. Alle overige filters worden vervolgens berekend ten opzichte van de context. Contextfilters:
- Verschijnen bovenaan de container Filters.
- Zijn te herkennen aan een grijze kleur in de container Filters.
- Kunnen niet opnieuw worden geordend in de container.
Zoals hieronder getoond, wordt de dimensie Verzendmodus ingesteld als context voor een weergave. Het filter Regio wordt berekend met alleen de data die door Verzendmodus gaan.
U kunt een contextfilter wijzigen door:
- Het veld te verwijderen uit de container Filters: als er andere contextfilters in de container achterblijven, wordt er een nieuwe context berekend.
- Het filter te bewerken: elke keer dat u een contextfilter bewerkt, wordt er een nieuwe context berekend.
- Verwijderen uit context te selecteren: het filter blijft als standaardfilter in de container staan. Als er nog andere contextfilters in de container achterblijven, wordt er een nieuwe context berekend.
Contextfilters versnellen
Om de prestaties van contextfilters te verbeteren, vooral bij grote databronnen, volgt u deze algemene regels.- Het is veel beter om één contextfilter te gebruiken waarmee u de omvang van de dataset aanzienlijk verkleint, dan om meerdere contextfilters toe te passen.
- Voltooi al uw datamodelleringsbewerkingen voordat u een context maakt. Wijzigingen in het datamodel, zoals het omzetten van dimensies naar meetwaarden, vereisen een herberekening van de context.
- Stel de benodigde filters voor de context in en maak de context voordat u velden toevoegt aan andere containers. Als u dit eerst doet, worden de query's die worden uitgevoerd wanneer u velden op andere containers neerzet, veel sneller.
- Als u een contextfilter op een datum wilt instellen, kunt u een continue datum gebruiken. Het gebruik van datumbins zoals YEAR(Date) of contextfilters op discrete datums is echter zeer effectief.
Opmerking: Contextfilters kunnen een negatieve invloed hebben op de prestatieverbeteringen van query's wanneer u de optie Referentiële integriteit aannemen in het menu Data van de databron gebruikt. Zie Referentiële integriteit aannemen voor joins voor meer informatie.
Voorbeeld: Contextfilters maken
In dit voorbeeld wordt uitgelegd hoe u een contextfilter maakt. Eerst filtert u een weergave om de top 10 producten qua verkoop te tonen. Vervolgens maakt u een contextfilter op productcategorie, zodat u de top 10 meubelproducten kunt zien.
Gebruik de databron Voorbeeld - Superstore om de hieronder getoonde initiële weergave te maken. In de weergave worden de verkoopcijfers voor alle subcategorieën getoond, gesorteerd met de hoogste verkoop bovenaan.
Maak nu een Top 10-filter om alleen de best verkopende producten te tonen. U kunt dit filter maken door het veld Subcategorie naar de container Filters te slepen. Schakel in het dialoogvenster Filter over naar het tabblad Boven en definieer een filter dat Top 10 is op basis van de som van de verkopen. Zie Data uit uw weergaven filteren(Link wordt in een nieuw venster geopend) voor meer informatie over het definiëren van een Top N-filter.
Wanneer u op OK klikt, ziet u dat de weergave is gefilterd om de top 10 productsubcategorieën qua verkoop te tonen.
Laten we nu een ander filter toevoegen om alleen meubelproducten te tonen. Sleep het veld Categorie naar de container Filters en selecteer alleen Meubels. Klik op OK als u klaar bent.
De weergave is gefilterd, maar in plaats van 10 producten worden er nu 3 getoond. Dit komt doordat standaard alle filters afzonderlijk worden beoordeeld en de weergave de doorsnede van de resultaten toont. Uit deze weergave blijkt dat drie van de top 10 producten meubelen zijn.
Om erachter te komen wat de top 10 meubelproducten zijn, moeten we van het filter Categorie een contextfilter maken. Klik met de rechtermuisknop op het veld in de container Filters en selecteer Toevoegen aan context.
Het filter wordt gemarkeerd als contextfilter en de weergave wordt bijgewerkt om de top vier meubelproducten te tonen. Waarom niet 10? Omdat slechts vier van de subcategorieën meubels bevatten. Maar we weten nu dat het Top 10-filter wordt geëvalueerd op basis van de resultaten van die context.