7.1 Een introductie tot DAX
Hoewel DAX als taal populair is geworden dankzij Power BI, bestaat de taal al lang voordat Power BI werd ontwikkeld. DAX vindt zijn oorsprong in Excel Power Pivot 2010 en deze kunt u ook gebruiken in Structured Query Language (SQL) en Server Analysis Services (SSAS).
Functies
In DAX bent u vrij om de verschillende functies met elkaar te combineren. Dit maakt DAX een flexibele en krachtige programmeertaal. De verschillende functies zijn in te delen in verschillende groepen. Deze komen hieronder aan bod.
Aggregatiefuncties
tussen- berekeningen
Aggregatiefuncties geven één waarde terug, een scalaire waarde waarbij de functie een kolom of tussenberekening aggregeert tot één waarde. Functies die hieronder vallen zijn SUM, COUNT en AVERAGE.
Datum-en-tijdfuncties
Datum-en-tijdfuncties zijn de bouwstenen voor datum- en tijdsberekeningen. Denk aan YEAR, HOUR en TODAY.
Filterfuncties
Voor het filteren van tabellen en om filtercontext te manipuleren gebruikt u de filterfuncties. Zo zorgt de functie FILTER ervoor dat een tabel gefilterd kan worden met behulp van een filterexpressie. CALCULATE heeft als functie om de filtercontext te kunnen wijzigen. In combinatie met een functie ALL kunt u bijvoorbeeld filters uitzetten in een berekening.
Financiële functies
financiële vakgebied
De financiële functies komen overeen met de functies die ook in Excel beschikbaar zijn. Ze zijn heel specifiek voor het financiële vakgebied. Denk hierbij aan XIRR, YIELD en INTRATE.
Informatiefuncties
De informatiefuncties WAAR (true) of ONWAAR (false) geven de context op basis van een bepaald datatype of filter. Zo geeft ISFILTERED de waarde WAAR (true) op een kolom als deze gefilterd wordt door een Slicer-visual.
Logische functies
Met de logische functies wordt al-dan-logica gebouwd. Denk hierbij onder ander aan functies als IF, SWITCH, AND, OR et cetera.
Wiskundige functies
In de wiskundige functies vindt u specifieke wiskundige en trigonometrische functies, zoals PI, SIN, SQRT, en diverse afrondingsfuncties, zoals MROUND en ROUNDUP.
Hiërarchiefuncties
Om niveaus in een hiërarchie te duiden, maakt u gebruik van de hiërarchiefuncties.
Relatiemanagementfuncties
inactieve relatie
Met de relatiemanagementfunctie kunt u de bestaande relaties in het datamodel manipuleren. Met USERELATIONSHIP kunt u bijvoorbeeld een inactieve relatie tijdelijk activeren voor de specifieke berekening.
Statistische functies
Onder deze groep vallen functies die voor statistische berekeningen relevant zijn. Denk hierbij aan het uitrekenen van percentielen of de mediaan.
Tabelmanipulatiefuncties
kolommen toevoegen
Voor het uitbreiden en wijzigen van bestaande tabellen gebruikt u de tabelmanipulatiefuncties. Bijvoorbeeld met de functie ADDCOLUMNS kunt u aan een bestaande tabel extra kolommen toevoegen.
Tekstfuncties
waarden samenvoegen
De tekstfuncties stellen u in staat om tekstwaarden te manipuleren en samen te voegen. Met CONCATENATE kunt u bijvoorbeeld twee waarden samenvoegen tot één tekst. Met ‘UPPER’ wijzigt u alle teksten in kapitalen.
Intelligente-datumperiodefuncties
Met de intelligente-datumperiodefuncties kunt u berekeningen uitvoeren die rekenen met een bepaalde datumperiode. Zo kunt u maanden of jaren met elkaar vergelijken met behulp van de functies PREVIOUSYEAR of PREVIOUSMONTH.
Hoewel spaties tussen de verschillende onderdelen van uw DAX-functies niet verplicht zijn, vergroot dit wel de leesbaarheid. Maak eventueel gebruik van DAX-formatter om complexere formules automatisch op te maken om de leesbaarheid te vergroten: www.daxformatter.com.