Gegevens in DAX-formules filteren

Opmerking: We willen u graag zo snel mogelijk de meest recente Help-inhoud in uw eigen taal bieden. Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor u is. Kunt u ons onder aan deze pagina laten weten of de informatie nuttig voor u was? Hier is het Engelstalige artikel ter referentie.

In deze sectie wordt beschreven hoe u filters maakt in DAX-formules (Data Analysis expressions). U kunt filters in formules maken om de waarden te beperken van de bron gegevens die in berekeningen worden gebruikt. U doet dit door een tabel op te geven als invoer voor de formule en vervolgens een filter expressie te definiëren. De filter expressie die u opgeeft, wordt gebruikt om een query uit te voeren op de gegevens en retourneert slechts een subset van de bron gegevens. Het filter wordt dynamisch toegepast telkens wanneer u de resultaten van de formule bijwerkt, afhankelijk van de huidige context van uw gegevens.

In dit artikel

Een filter maken voor een tabel die in een formule wordt gebruikt

Filters waarmee dubbele waarden worden verwijderd

Hoe de context van invloed is op filters

Filters verwijderen

Alle filters vervangen met de functie ALL

Specifieke filters vervangen met de functie ALLEXCEPT

Een filter maken voor een tabel die in een formule wordt gebruikt

U kunt filters toepassen in formules waarin een tabel kan worden gebruikt. U geeft niet de naam van de tabel op, maar in plaats daarvan gebruikt u de functie FILTER om een deelverzameling met rijen uit de opgegeven tabel te definiëren. Die deelverzameling wordt vervolgens doorgegeven aan een andere functie voor bewerkingen zoals aangepaste aggregaties.

Bijvoorbeeld: Stel dat u een tabel hebt met bestelinformatie over wederverkopers en u wilt berekenen hoeveel elke wederverkoper heeft verkocht. U wilt echter alleen de verkoopbedragen zien voor de wederverkopers die meerdere aantallen van de duurdere producten hebben verkocht. De volgende formule, die is gebaseerd op de DAX-voorbeeldwerkmap, illustreert hoe u deze berekening kunt maken met behulp van een filter:

= SUMX (
     FILTER (' ResellerSales_USD ', ' ResellerSales_USD ' [hoeveelheid] > 5 &&
     ' ResellerSales_USD ' [ProductStandardCost_USD] > 100);
     ' ResellerSales_USD ' [SalesAmt]
     )

  • Het eerste gedeelte van de formule bevat een van de statistische functies in Power Pivot, waarin een tabel als argument wordt gebruikt. Met SUMX wordt een som van een tabel berekend.

  • Het tweede gedeelte van de formule, FILTER(table, expression),verschaft SUMX de gegevens die moeten worden gebruikt. SUMX vereist een tabel of een expressie die in een tabel resulteert. In plaats van alle gegevens in een tabel te gebruiken, geeft u in plaats daarvan de functie FILTER op om aan te geven welke rijen uit de tabel moeten worden gebruikt.

    De filterexpressie bestaat uit twee delen: het eerste deel bevat de naam van de tabel waarvoor het filter geldt. Het tweede deel definieert een expressie die als filtervoorwaarde wordt gebruikt. In dit geval filtert u de gegevens op wederverkopers die meer dan 5 eenheden en producten hebben verkocht die meer dan $100 kosten. De operator &&is een logische AND-operator, die aangeeft dat beide delen van de voorwaarde waar moeten zijn om de rij deel te laten uitmaken van de gefilterde deelverzameling.

  • Met het derde deel van de formule worden aan de formule SUMX de waarden doorgegeven die moeten worden opgeteld. In dit geval gebruikt u alleen de verkoopaantallen.

    Functies zoals FILTER, waarmee een tabel wordt geretourneerd, retour neren de tabel of rijen nooit rechtstreeks, maar zijn altijd Inge sloten in een andere functie. Zie filter functies (Dax)voor meer informatie over filter en andere functies die worden gebruikt voor filteren, waaronder meer voor beelden.

    Opmerking: De filterexpressie wordt beïnvloed door de context waarin deze wordt gebruikt. Als u bijvoorbeeld een filter in een meting gebruikt en die meting wordt gebruikt in een draaitabel of -grafiek, wordt de geretourneerde deelverzameling gegevens mogelijk beïnvloed door extra filters of slicers die door u zijn toegepast op de draaitabel. Zie Context in DAX-formules voor meer informatie over context.

Filters waarmee dubbele waarden worden verwijderd

Naast het filteren van specifieke waarden kunt u een unieke reeks waarden uit een andere tabel of kolom retour neren. Dit kan handig zijn als u het aantal unieke waarden in een kolom wilt tellen of als u een lijst met unieke waarden voor andere bewerkingen wilt gebruiken. DAX biedt twee functies voor het retour neren van afzonderlijke waarden: DISTINCT , functie en waarden, functie.

  • Met de functie DISTINCT wordt één kolom gebruikt als argument voor de functie en wordt een nieuwe kolom geretourneerd die alleen de unieke waarden bevat.

  • Met de functie VALUES wordt naast een lijst van unieke waarden ook het lid Onbekend geretourneerd. Dit is nuttig als u waarden wilt gebruiken uit twee tabellen die door middel van een relatie aan elkaar zijn gekoppeld, waarbij een waarde wel voorkomt in de ene tabel maar ontbreekt in de andere tabel. Zie Context in DAX-formules voor meer informatie over het onbekende lid.

Met beide functies wordt een volledige waardenkolom geretourneerd. Daarom gebruikt u de functies om een lijst met waarden op te halen, die vervolgens aan een andere functie wordt doorgegeven. U kunt bijvoorbeeld de volgende formule gebruiken om een lijst van unieke producten op te halen die door een bepaalde wederverkoper zijn verkocht, op basis van de unieke productcode, en vervolgens kunt u de producten in die lijst tellen met de functie COUNTROWS:

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

Naar boven

Hoe de context van invloed is op filters

Wanneer u een DAX-formule toevoegt aan een draai tabel of draai grafiek, kunnen de resultaten van de formule worden beïnvloed door de context. Als u in een Power Pivot-tabel werkt, is de context de huidige rij en de bijbehorende waarden. Als u in een draai tabel of draai grafiek werkt, staat de context voor de set of subset met gegevens die is gedefinieerd door bewerkingen, zoals het splitsen van een segment of het filteren. Met het ontwerp van de draai tabel of draai grafiek wordt ook een eigen context opgelegd. Als u bijvoorbeeld een draai tabel maakt waarin de verkoop per regio en het jaar worden gegroepeerd, worden alleen de gegevens in de draai tabel weer gegeven die van toepassing zijn op die gebieden en jaren. Daarom worden alle maat staven die u toevoegt aan de draai tabel berekend in de context van de kolom koppen en rijkoppen plus filters in de formule voor de meting.

Zie Context in DAX-formules voor meer informatie.

Naar boven

Filters verwijderen

Tijdens het werken met een complexe formule wilt u wellicht exact weten welke filters er zijn toegepast of wilt u wellicht het filtergedeelte van de formule wijzigen. DAX biedt diverse functies waarmee u filters kunt verwijderen en kunt bepalen welke kolommen worden behouden als onderdeel van de huidige filtercontext. Dit gedeelte bevat een overzicht van hoe deze functies van invloed zijn op de resultaten in een formule.

Alle filters vervangen met de functie ALL

Gebruik de functie ALL om alle filters te vervangen die eerder zijn toegepast en alle rijen in de tabel te retourneren aan de functie waarmee de statistische berekening of een andere bewerking wordt uitgevoerd. Als u in plaats van een tabel een of meer kolommen als argumenten doorgeeft aan ALL worden met de functie ALL alle rijen geretourneerd, waarbij eventuele contextfilters worden genegeerd.

Opmerking: Als u bekend bent met relationeledatabaseterminologie, kunt u ALL vergelijken met het genereren van de natuurlijke linker outer-join van alle tabellen.

Bijvoorbeeld: Stel dat u op basis van de tabellen Sales en Products een formule wilt maken waarmee de som van verkopen voor het huidige product wordt berekend en vervolgens wordt gedeeld door de verkopen voor alle producten. U moet er rekening mee houden dat een gebruiker van de draaitabel, als de formule in een meting wordt gebruikt, wellicht een slicer op de rijen kan toepassen om op een bepaald product te filteren met de productnaam. Om te zorgen dat de werkelijke waarde van de noemer wordt geretourneerd, ongeacht eventuele filters of slicers, moet u de functie ALL toevoegen zodat alle filters worden genegeerd. De volgende formule illustreert hoe met ALL het effect van eerder ingestelde filters wordt opgeheven:

=SUM (Sales[Amount])/SUMX(Sales[Amount], FILTER(Sales, ALL(Products)))

  • In het eerste deel van de formule, SUM (Sales[Amount]), wordt de teller berekend.

  • In de som wordt rekening gehouden met de huidige context. Als u de formule dus aan een berekende kolom toevoegt, wordt de rijcontext toegepast. Als u de formule als meting aan een draaitabel toevoegt, worden eventuele filters voor de draaitabel (de filtercontext) toegepast.

  • In het tweede deel van de formule wordt de noemer berekend. Met de functie ALL worden alle filters vervangen die eventueel zijn toegepast op de tabel Products.

Zie all, functievoor meer informatie.

Specifieke filters vervangen met de functie ALLEXCEPT

Met de functie ALLEXCEPT worden ook bestaande filters overschreven, maar u kunt opgeven dat sommige van de bestaande filters behouden moeten blijven. De kolommen die u een naam geeft als argumenten voor de functie ALLEXCEPT, geven aan welke kolommen worden gefilterd. Als u filters wilt overschrijven in de meeste kolommen, maar niet op alle, is ALLEXCEPT handiger dan alles. De functie ALLEXCEPT is met name handig wanneer u draai tabellen maakt die in veel verschillende kolommen kunnen worden gefilterd en u de waarden wilt beheren die in de formule worden gebruikt. Zie ALLEXCEPT, functievoor meer informatie, zoals een gedetailleerd voor beeld van het gebruik van ALLEXCEPT in een draai tabel.

Naar boven

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagents.

×