Om te illustreren hoe je een variabele kan gebruiken om een meting efficiënter te maken, geeft de volgende tabel een meting op twee verschillende manieren weer.
Sales YoY Growth = DIVIDE ( ( [Sales] - CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) ) ), CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) ) )
Sales YoY Growth = VAR SalesPriorYear = CALCULATE ( [Sales], PARALLELPERIOD ( 'Date'[Date], -12, MONTH ) ) VAR SalesVariance = DIVIDE ( ( [Sales] - SalesPriorYear ), SalesPriorYear ) RETURN SalesVariance
In de eerste metingsdefinitie in de tabel is de formule inefficiënt omdat Power BI dezelfde uitdrukking twee keer moet evalueren.
De tweede definitie is efficiënter omdat Power BI vanwege de variabele de expressie PARALLELPERIOD maar één keer hoeft te evalueren.
Als jouw gegevensmodel meerdere query’s met meerdere metingen heeft, kan het gebruik van variabelen de totale verwerkingstijd van queries halveren en de algemene prestaties van het gegevensmodel verbeteren. Verder is deze oplossing eenvoudig; stel je de besparingen voor als de formules ingewikkelder worden, bijvoorbeeld wanneer je te maken hebt met percentages en lopende totalen.
Naast verbeterde prestaties, merk je misschien hoe het gebruik van variabelen de code eenvoudiger leesbaar maakt.
Bij het gebruik van variabelen is het het beste om beschrijvende namen voor de variabelen te gebruiken. In het vorige voorbeeld heet de variabele SalesPriorYear, waarin duidelijk wordt aangegeven wat de variabele berekent. Noem je jouw variable X, temp of variabele1, dan is het doel van de variabele niet echt duidelijk.
Het gebruik van duidelijke, beknopte, betekenisvolle namen zal het gemakkelijker maken om te begrijpen er berekend is, en het zal voor andere ontwikkelaars veel eenvoudiger zijn om het rapport in de toekomst te onderhouden.
Je kan variabelen gebruiken om fouten in een formule op te sporen en vast te stellen wat het probleem is. Variabelen helpen de taak van het oplossen te vereenvoudigen door elke variabele afzonderlijk te evalueren en door ze terug te roepen na de RETURN-expressie.
In het volgende voorbeeld wordt een expressie getest die aan een variabele is toegewezen. Om te debuggen herschrijf je tijdelijk de RETURN-expressie naar de te testen variabele. De metingsdefinitie retourneert alleen de variabele SalesPriorYear omdat dat is wat na de RETURN-expressie komt.
Sales YoY Growth % = VAR SalesPriorYear = CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH)) VAR SalesPriorYear% = DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear) RETURN SalesPriorYear%
De RETURN-expressie geeft alleen de waarde SalesPriorYear weer. Met deze techniek kan je de uitdrukking terugzetten als je klaar bent met debuggen. Het maakt berekeningen ook eenvoudiger te begrijpen vanwege de verminderde complexiteit van de DAX-code.