In deze blogpost vertellen we u meer over DAX en M-query. Beiden zijn functionele programmeertalen binnen Power BI. Maar waar worden ze voor gebruikt, en wat zijn nu de verschillen?
M-Query Language
De M-Query taal wordt gebruikt in de Power Query Editor, en heeft als doel het ophalen, schoonmaken, en modelleren van data voordat het ingeladen wordt in het Power BI model. Deze taal neemt het ETL (Extract, Transform, Load) proces op zich. Deze taal wordt hoofdzakelijk gebruikt voor het queryen, schoonmaken, en transformeren van data. Dit is vooral handig wanneer u een connectie heeft gemaakt met een Excel bestand waarin nog de nodige aanpassingen gemaakt moeten worden voordat de data klaar is voor visualisatie. Enkele voorbeelden van toepassingen waarbij de M-Query taal gebruikt wordt.
- Het toevoegen van een kolom. In het onderstaande voorbeeld willen we de winst berekenen. We voegen een kolom toe en gebruiken de M-Query taal om de berekening te maken.
- Het filteren van een kolom. Alle bewerkingen die je maakt met de knoppen in de Power Query Editor worden vervolgens zichtbaar in de M-Query formuletaal in de formulebalk. De eerste afbeelding laat zien dat er geen filters zijn. Als ik vervolgens alleen de status Open zichtbaar maak veranderd de formule bovenin.
In dit laatste voorbeeld zie je duidelijk dat je niet perse verstand hoeft te hebben van de M- Query taal om bewerkingen te maken. Ik heb niet zelf de bovenstaande formule geschreven, maar door op de filter knop te klikken heeft de Power Query Editor dit voor mij gedaan. Het is dus niet nodig om deze taal volledig te snappen omdat je aan de hand van de knoppen bijna alle bewerkingen kan maken. Wel is het handig om de kennis te hebben zodat je precies weet wat er gebeurd, en je de code in de formulebalk zelf kan aanpassen of zelfs schrijven. Dit maakt je een stuk flexibeler en versneld het proces.
*De Power Query Editor vindt u onder het kopje Transformeer data in Power BI desktop.
DAX (Data Analyses eXpressions)
DAX is een afkorting van Data Analyses eXpressions, en deze formule taal wordt gebruikt voor het toevoegen van berekeningen of gecalculeerde kolommen nadat de data is ingeladen in het model. De funtionaliteiten van DAX zijn te vergelijken met de formules die u kent binnen Excel. DAX bevat vele functies, operators, en waarden die gebruikt kunnen worden voor berekeningen, conditionele statements of het filteren van data. Onderstaand een voorbeeld.
- De data is ingeladen en nu wil ik alleen de som van de omzet waarbij de Status gelijk is aan open. In dit geval kan ik een meting aanmaken (measure) waarin ik de volgende formule gebruik. De calculate formule stelt me in staat om iets te berekenen met filters. Dit doe je op de volgende manier: CALCULATE( “De waarde”, “De filter”). De onderstaande formule berekent dus de som van de omzet waarbij de status gelijk is aan Open.
Verschillen en overeenkomsten
De M-Query taal wordt gebruikt voordat de data wordt ingeladen, dit is vooral handig wanneer de data schoongemaakt moet worden, of als je extra kolommen wil toevoegen aan je dataset. DAX wordt gebruikt nadat de data ingeladen is in het model, en je een verdere analyse wil doen. De M-Query language lijkt in niks op Excel, en kan moeilijk te gebruiken zijn voor mensen met ervaring met Excel formules. De formules in DAX lijken erg op de functionaliteiten in Excel, en het is dan ook makkelijker om DAX onder de knie te krijgen.
De M-Query taal dient gebruikt te worden voor het queryen, schoonmaken, en transformeren van je data. DAX dient gebruikt te worden voor aanvullende analyses, zoals bijvoorbeeld cumulatieve omzet, gemiddeldes, en aantallen.
Naast verschillen hebben ze ook overeenkomsten. In sommige gevallen kan je met beide talen hetzelfde bereiken. Zo kan je bijvoorbeeld met zowel de M-Query taal als met DAX een kolom toevoegen. Welke dien je in dit geval te kiezen? In dat geval zou ik kiezen voor een extra kolom met de M query taal, tenzij je een kolom wil maken die data gebruikt uit een andere tabel. Het zal uiteindelijk niet veel uitmaken. Maar dit artikel (engels) legt in meer detail uit waarom dit toch de beste keuze is.
Het is enorm waardevol om beide talen te leren en te begrijpen. Wanneer je al kennis hebt van Excel formules zal je DAX redelijk snel onder de knie hebben. Sommige formules, operators, en structuren lijken namelijk op de formules in Excel. Ik merk persoonlijk dat ik vaker gebruik maak van DAX dan van M-Query language, ook omdat je bij een verbinding met een database eigenlijk nog maar weinig aanpassingen hoeft te maken aan de data.
Dit was de blogpost van deze week, mochten jullie suggesties hebben voor onderwerpen voor blogpost, laat het ons alsjeblieft weten in de reacties of via ons contactformulier!