DAX voor Financials #6 – ALL en ALLEXCEPT

In deze serie DAX voor Financials leggen we een aantal veelgebruikte DAX-formules uit. We behandelen daarbij formules die veel gebruikt worden voor financiële rapportages en dashboards. We kijken dus naar DAX vanuit de optiek van een accountant, controller of administrateur. 

We werken in dit voorbeeld verder met de dataset uit het vorige blog item.

ALL op een tabel

In het vorige artikel hadden we deze DAX formule:

Hier wordt het bedrag van de mutatieregels opgeteld, voor alle mutaties uit 2020. Nu gaan we kijken hoe we een bestaand filter kunnen veranderen. Dat doen we met de DAX-functie ALL.

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )

Met ALL kun je een filter opheffen op een kolom of een hele tabel. De eerste parameter is de tabel waarop je het filter wilt opheffen, aanvullend kun je in de volgende parameters aangeven dat je in die tabel alleen het filter op bepaalde kolommen wilt opheffen.

We heffen nu het filter van de gehele Mutatie tabel. Zoals je ziet is de uitkomst van elke regel € 13.800, het totaal van alle regels van beide klanten. Dus ondanks de slicer met een actief filter op klantnr 1000, worden toch alle regels geteld. Ook de filter context vanuit de andere kolommen van de visual wordt opgeheven door de ALL functie. Op elke regel staat een bedrag van € 13.800.

In plaats van de ALL functie kun je ook de REMOVEFILTERS functie gebruiken. Beiden doen hetzelfde. Het verschil is dat REMOVEFILTERS alleen gebruikt kan worden binnen een CALCULATE functie. De ALL functie kan ook daarbuiten gebruikt worden.

ALL op een kolom

Als je de ALL functie alleen op een kolom toepast, dan wordt alleen het filter op die betreffende kolom (of meerdere kolommen) opgeheven.

Zoals je ziet wordt de filter context van de kolommen in de visual niet opgeheven, maar alleen het filter vanuit de slicer met het klantnummer. Het totaalbedrag is niet € 6.800 wat je zou verwachten, maar het totaal van alle regels van alle klanten. Op de totaalregel is geen filter context aanwezig vanuit de andere kolommen in de visual en wordt dit totaalbedrag berekend.

ALLEXCEPT

Wat nu als je alle filters van de kolommen uit de visual wilt opheffen, behalve het filter op één kolom. Bijvoorbeeld om het totaal van de geselecteerde klant te berekenen. Dat kun je doen met de ALLEXCEPT functie.

ALLEXCEPT(<table>,<column>[,<column>[,…]])

Met ALLEXCEPT hef je alle filters op een bepaalde tabel op, behalve de filters op de in de tweede parameter genoemde kolommen.

In dit voorbeeld worden alle filters vanuit de filter context van de andere kolommen in de visual opgeheven, behalve het filter op de kolom met het klantnummer. Het resultaat is dat op elke regel het totaal van klant 1000 wordt getoond. Dit kun je bijvoorbeeld gebruiken om een percentage ten opzichte van het klanttotaal uit te rekenen.

In het volgende blog item gaan we kijken naar nog meer manieren om de filtercontext aan te passen.

Meer weten?

Met Power BI maak je in korte tijd fraaie dashboards en rapportages. Vanuit Davista helpen we je daar graag mee op weg. Voor diverse softwarepakketten bieden we connectors aan, zodat je jouw data in Power BI kunt gebruiken. Voor een snelle start kun je aan de slag met een standaard dashboard of met één van de templates. Natuurlijk kunnen we je ook helpen met een dashboard op maat, of we geven je een training zodat je zelf jouw dashboards kunt maken.

Nodig ons gerust uit voor een vrijblijvende kennismaking, zodat we de meerwaarde voor jouw onderneming kunnen laten zien.