Office
Aanmelden

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 maken van filters binnen formules voor Data Analysis Expressions (DAX). U kunt filters binnen formules, het beperken van de waarden uit de brongegevens die worden gebruikt in berekeningen maken. U doet dit door een tabel opgeeft als invoer voor de formule en vervolgens een filterexpressie te definiëren. De filterexpressie die u opgeeft, wordt gebruikt voor de query de gegevens en alleen een subset van de brongegevens terug te keren. Het filter is toegepast dynamisch telkens wanneer de resultaten van de formule, afhankelijk van de huidige context van uw gegevens bij te werken.

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'[Quantity] > 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.

    Onthoud dat functies zoals FILTER, waarmee een tabel wordt geretourneerd, nooit rechtstreeks een tabel of rij retourneren, maar altijd worden ingesloten in een andere functie. Zie Filterfuncties (DAX) voor meer informatie over FILTER en andere functies voor het toepassen van filters, inclusief meer voorbeelden.

    Opmerking: De filterexpressie wordt beïnvloed door de context waarin deze worden gebruikt. Als u een filter in een maateenheid gebruikt en de maateenheid wordt gebruikt in een draaitabel of draaigrafiek, kan er bijvoorbeeld de subset met gegevens die worden geretourneerd worden beïnvloed door extra filters of Slicers die is toegepast in de draaitabel. Zie Context in DAX-formulesvoor meer informatie over context.

Filters waarmee dubbele waarden worden verwijderd

Behalve het filteren op specifieke waarden kunt u ook een unieke set waarden uit een andere tabel of kolom laten retourneren. Dit kan nuttig 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 retourneren van unieke waarden: de functie DISTINCT en de functie VALUES.

  • 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 aan een draaitabel of draaigrafiek toevoegt, kunnen de resultaten van de formule worden beïnvloed door de context. Als u in een tabel Power Pivot werkt , wordt de context wordt de huidige rij en de waarden wilt opzoeken. Als u in een draaitabel of draaigrafiek werkt, wordt de context: de instellen of de subset met gegevens die is gedefinieerd door bewerkingen zoals segmenteren of filteren. Het ontwerp van de draaitabel of draaigrafiek legt ook een eigen context. Bijvoorbeeld als u een draaitabel die verkoop per regio en het jaar van groepen maakt, alleen de gegevens die van toepassing op deze regio's en het jaar wordt weergegeven in de draaitabel. Daarom worden maatregelen die u aan de draaitabel toevoegt berekend in de context van de kolomkoppen en rijkoppen plus eventuele filters in de formule maateenheid.

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 Functie ALL voor meer informatie en gedetailleerde voorbeelden.

Specifieke filters vervangen met de functie ALLEXCEPT

Met de functie ALLEXCEPT worden ook bestaande filters vervangen, maar u kunt wel opgeven dat sommige filters moeten blijven behouden. De kolommen die u als argument doorgeeft aan de functie ALLEXCEPT bepalen welke kolommen worden gefilterd. Als u filters van de meeste maar niet alle kolommen wilt negeren, is ALLEXCEPT handiger dan ALL. De functie ALLEXCEPT is vooral nuttig als u een draaitabel maakt die op een groot aantal verschillende kolommen wordt gefilterd en u wilt de waarden beheren die in de formule worden gebruikt. Zie Functie ALLEXCEPT voor meer informatie en een gedetailleerd voorbeeld van het gebruik van ALLEXCEPT in een draaitabel.

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.

×