Werken met waardefiltergedrag (preview)
Met de opties voor waardefiltergedrag in Power BI kunt u het automatische filtermechanisme in DAX beïnvloeden dat optreedt wanneer meerdere kolommen uit dezelfde tabel worden gefilterd. Dit gedrag wordt informeel 'automatisch bestaan' genoemd.
Wat is waardefiltergedrag
Wanneer meerdere kolommen uit dezelfde tabel worden gefilterd, begrijpt DAX dat waarschijnlijk niet alle combinaties van waarden in deze kolommen geldig zijn en daardoor automatisch ongeldige combinaties worden uitgesloten. De DAX-engine heeft een samengevoegd waardefilter gegenereerd dat niet alleen geldige combinaties retourneert, maar ook van invloed is op gemeten berekeningen. Met de instelling voor waardefiltergedrag kunt u dit gedrag in uw semantische model wijzigen. U kunt bepalen of u samengevouwen waardenfilters wilt uitschakelen en in plaats daarvan onafhankelijke waardefilters wilt inschakelen. Als u onafhankelijke waardefilters inschakelt door de instelling voor waardefiltergedrag in te stellen op Onafhankelijk (zie verderop in dit artikel), worden meerdere filters in dezelfde tabel gescheiden gehouden in plaats van de DAX-engine die deze filters combineert in één.
Inzicht in het gedrag van waardefilters
Wanneer u meerdere kolommen in dezelfde tabel filtert, worden deze filters door het huidige standaardwaardefilter toegepast en gecombineerd tot één, rekening houdend met alleen de combinaties die bestaan. Houd rekening met de volgende twee kolommen in dezelfde tabel:
- Jaar, dat waarden bevat zoals '2023'.
- Maand, die waarden bevat zoals 'januari 2024'.
Als u filtert op zowel Year als Month, omdat deze kolommen zich in dezelfde tabel bevinden, worden de filters gecombineerd in één, maar alleen de combinaties die bestaan, worden beschouwd. De combinatie van de maand januari 2024 met jaar 2023 bestaat niet en zou niet worden opgenomen in het filter. Er zijn echter situaties waarin de resultaten verrassend zijn.
Laten we eens kijken naar een voorbeeld waarin we een catalogus hebben met de beschikbaarheid van kleuren voor producten per jaar. De fabrikant van deze producten experimenteerde met het maken van producten in verschillende kleuren gedurende de jaren:
We hebben drie producten die in verschillende kleuren in de loop van de jaren beschikbaar waren. U ziet dat er in 2024 geen rode producten worden aangeboden. Dit wordt later belangrijk. Laten we nu het aantal producten tellen door de volgende meting toe te voegen:
Number of Products = COUNTROWS( 'Catalog' )`
In de volgende matrix ziet u het aantal producten dat beschikbaar is in verschillende kleuren per jaar:
Nu gaan we nog een meting toevoegen om het totale aantal producten voor alle jaren te berekenen:
Number of Products All Years = CALCULATE ( [Number of Products], ALL ( 'Catalog'[Year] ) )
Laten we deze metingen naast elkaar plaatsen en filteren op jaar 2023 en alleen de blauwe en rode kleuren (dus geen zwart). U kunt zien dat het aantal producten 4 is en het aantal producten gedurende alle jaren voor deze twee kleuren is 6:
Als we overschakelen naar 2024, verwachten we dat de meting 'Aantal producten' 2 retourneert, omdat er slechts twee producten blauw zijn in 2024 en dat jaar geen rode producten zijn. Bovendien verwachten we dat het aantal producten voor alle jaren niet zal veranderen, omdat het uiteindelijk alle jaren moet worden berekend. Het aantal producten voor alle jaren wordt echter gewijzigd van 6 tot en met 5:
Het aantal producten in alle jaren moet nog steeds 6 zijn, niet 5. Wat we hier zien is het gedrag van het waardefilter in actie: het combineert filters in dezelfde tabel, waarbij combinaties worden verwijderd die niet bestonden. De filters zijn Year = 2024 en Color = Blue of Red. Omdat deze twee filters zich in dezelfde tabel bevinden, worden deze filters gecombineerd tot één filter dat alleen filtert voor de combinaties die bestaan. Omdat er in 2024 geen rode producten zijn, is het toegepaste filter Year = 2024 en Color = Blue. Daarom telt het aantal producten voor alle jaren alleen het aantal blauwe producten, niet de blauwe of rode producten. Dit retourneert 5, zoals u in de tabel kunt bevestigen.
Invloed hebben op het gedrag van het waardefilter
U kunt bepalen of u dit gedrag in uw semantische model wilt gebruiken met behulp van de instelling Waardefilter op uw semantische model in het deelvenster Eigenschappen in de modelweergave:
Er zijn drie opties beschikbaar:
- Automatisch : dit is de standaardinstelling en schakelt momenteel het samengekolen gedrag in. Wanneer we deze preview inpakken, zullen nieuwe modellen die zijn ingesteld op Automatisch onafhankelijk worden gebruikt, er op dat moment worden aangekondigd.
- Onafhankelijk - Hierdoor worden filters in dezelfde tabel gescheiden gehouden. Nadat u de instelling 'Waardefiltergedrag' hebt ingesteld op Onafhankelijk, retourneert het totale aantal producten voor alle jaren 6 zoals verwacht (zie hieronder).
- Samengevoegd: dit dwingt het gedrag van het waardefilter in te schakelen voor het semantische model en resulteert in het combineren van de filters in dezelfde tabel in één. Het aantal producten voor alle jaren in ons voorbeeld blijft terugkeren naar 5.
In de volgende tabel ziet u het effect van deze instelling in ons voorbeeld: | Instelling voor waardefiltergedrag | Filters toegepast in het voorbeeld | Resultaat van voorbeeldmeting | | --- | --- | --- | |Automatisch |Jaar = 2024,
Kleur = blauw|5| |Onafhankelijk |Jaar = 2024,
Kleur = blauw of rood|6| |Samengesamend|Jaar = 2024,
Kleur = Blauw|5|
Als u het waardefiltergedrag instelt op Automatisch, betekent dit dat het voorlopig gelijk is aan Coalesced, maar in de toekomst wordt overgeschakeld naar Independent voor nieuwe semantische modellen. Als u het waardefiltergedrag instelt op Onafhankelijk, retourneert het aantal producten voor alle producten 6, zoals verwacht, omdat de filters Jaar = 2024 en Kleur = Blauw of Rood zijn en niet meer worden gecombineerd:
Volgende stappen
De volgende artikelen kunnen nuttig zijn: