Applies ToExcel voor Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016 Excel 2013

In dit gedeelte wordt beschreven hoe u filters maakt in DAX-formules (Data Analysis Expressions). U kunt filters maken in formules om de waarden uit de brongegevens te beperken die in berekeningen worden gebruikt. Hiertoe geeft u een tabel op als invoer voor de formule en definieert u een filterexpressie. Aan de hand van de filterexpressie wordt een query uitgevoerd op de gegevens en wordt alleen een deelverzameling van de brongegevens geretourneerd. Het filter wordt iedere keer dat u de formuleresultaten bijwerkt dynamisch toegepast, afhankelijk van de huidige context van de gegevens.

In dit artikel

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.

    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 die worden gebruikt voor filteren, inclusief meer voorbeelden.

    Opmerking: De filterexpressie wordt beïnvloed door de context waarin deze wordt gebruikt. Als u bijvoorbeeld een filter in een meting gebruikt en de meting wordt gebruikt in een draaitabel of draaigrafiek, kan de subset met gegevens die worden geretourneerd, worden beïnvloed door extra filters of slicers die de gebruiker heeft toegepast in de draaitabel. Zie Context in DAX-formules voor 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 afzonderlijke waarden: distinct, functie en functie WAARDEN.

  • 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.

Beide functies retourneren een hele kolom met waarden; Daarom gebruikt u de functies om een lijst met waarden op te halen die vervolgens wordt doorgegeven aan een andere functie. U kunt bijvoorbeeld de volgende formule gebruiken om een lijst op te halen van de afzonderlijke producten die door een bepaalde wederverkoper zijn verkocht, met behulp van de unieke productcode, en vervolgens de producten in die lijst te tellen met behulp van de functie COUNTROWS:

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

Naar boven

Hoe de context van invloed is op filters

Als u een DAX-formule aan een draaitabel of -grafiek toevoegt, kunnen de resultaten van de formule worden beïnvloed door de context. Als u in een Power Pivot-tabel werkt, bestaat de context uit de huidige rij en de bijbehorende waarden. Als u in een draaitabel of -grafiek werkt, bestaat de context uit de deelverzameling gegevens die is gedefinieerd door bewerkingen zoals het gebruik van slicers of filters. Het ontwerpen van de draaitabel of -grafiek biedt ook een eigen context. Als u bijvoorbeeld een draaitabel maakt waarin verkopen worden gegroepeerd op district en jaar, worden alleen de gegevens in de draaitabel weergegeven die van toepassing zijn op dit district en dit jaar. Daarom worden metingen die u aan de draaitabel toevoegt, berekend in de context van de kolom- en rijkoppen plus eventuele filters in de metingformule.

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.

Stel bijvoorbeeld dat u op basis van de tabellen Verkoop en Producten 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. Houd er rekening mee dat als de formule wordt gebruikt in een meting, de gebruiker van de draaitabel mogelijk een slicer gebruikt om te filteren op een bepaald product, met de productnaam op de rijen. Om ervoor te zorgen dat de werkelijke waarde van de noemer wordt geretourneerd, ongeacht eventuele filters of slicers, moet u de functie ALLES toevoegen, zodat alle filters worden genegeerd. De volgende formule illustreert hoe met ALLES 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.

  • De som houdt rekening met de huidige context, wat betekent dat als u de formule toevoegt aan een berekende kolom, de rijcontext wordt toegepast. Als u de formule als meting aan een draaitabel toevoegt, worden filters toegepast die zijn toegepast in de draaitabel (de filtercontext).

  • 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 Function voor meer informatie, inclusief 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 de functie ALLEXCEPT voor meer informatie, waaronder een gedetailleerd voorbeeld van het gebruik van ALLEXCEPT in een draaitabel.

Naar boven

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.