9.4 Measures: werken met filter-context
Om de werking van Measures beter te begrijpen moet u ook weten dat Power BI automatisch zelf berekeningen uitvoert op het moment dat u een veld in een visual sleept. Hieronder ziet u een tabel-visual waar het veld Orderbedrag in gebruik is. Het Orderbedrag is een numeriek veld.
U ziet dat Power BI automatisch alle waarden in deze kolom optelt. Als u met de muis over het veld gaat onder het deelvenster Visualizations, dan verschijnt er hiervoor de formule Sum of ‘Orders’ [Orderbedrag].
Als u op het uitklapmenu naast het kruis bij de veldnaam klikt, ziet u hier ook dat de aggregatie op SUM is ingesteld door het vinkje ervoor. Power BI doet dit standaard bij elk veld dat een numeriek datatype heeft.
9.4.1 Impliciete Measures versus Expliciete Measures
Zonder dat u het wellicht door heeft, maakt u dus al gebruik van berekeningen in de vorm van measures waarvan Power BI de formule impliciet uitvoert. Dit worden ook wel Impliciete measures genoemd. Expliciete Measures zijn berekening die u zelf invoert door gebruik te maken van DAX-functies (Data Analysis eXpressions) in de formulebalk.
De werking van de Impliciete en Expliciete Measures is verder gelijk. U kunt met Expliciete measures echter meer uitgebreide berekeningen maken. De Impliciete Measures beperken zich tot de groep aggregatiefuncties. Hierdoor is het niet mogelijk om complexere berekeningen te maken.
Wilt u meer dan alleen het aggregeren van waarden in Power BI, dan bent u aangewezen op het maken van eigen berekeningen of eventueel de Quick Measures.
9.4.2 Quick Measures
Quick Measures hebben dezelfde werking als de Impliciete en Expliciete Measures. Bij Quick Measures hoeft u echter zelf geen formule te schrijven; dit doet het programma voor u. Het resultaat is een formule en een Measure die u kunt gebruiken in een visual. U heeft na het aanmaken van de Quick Measure wel de mogelijkheid om de formule zelf aan te passen, net zoals bij de Expliciete Measure het geval is.
Als u echt wilt leren hoe DAX werkt, is het raadzaam om zelf DAX-formules te gaan schrijven. Vermijd in dit geval het gebruik van Quick Measures die de DAX-formules voor u genereren.
9.4.3 Eigenschappen van Measures
Measures hebben de volgende specifieke eigenschappen:
- De uitkomsten van een Measure zijn alleen zichtbaar in visuals als geaggregeerde waarden. De waarden worden niet als fysieke kolommen opgenomen in het datamodel.
- De berekende waarden in Measures houden altijd rekening met de filter-context.
- Het resultaat van een Measure mag alleen een scalaire waarde zijn (één getal) en mag dus geen tabel of lijst met waarden bevatten.
- In een Measure is het mogelijk om te verwijzen naar eerdere aangemaakte Measures.
Let wel erop dat u in Measures niet kunt verwijzen naar enkel een kolomnaam. Dit moet altijd gepaard gaan met een functie waarin u wel kunt verwijzen naar de kolomnaam. Verwijzen naar alleen een tabelnaam of kolomnaam resulteert in een foutmelding.
9.4.4 Verwijzen naar andere Measures
Als u naar een andere Measure verwijst, gebruikt u geen functie. U verwijst dan alleen naar de Measure-naam. De oorspronkelijke Measure heeft immers al een functie die tot een scalaire waarde leidt.
Voorbeeld
Omzet = SUM(Facturen[bedrag]) – De Measure telt alle waarden in de kolom Bedrag bij elkaar op tot één getal
Omzet Forecast = [Omzet] * 1.1 – Het omzetbedrag wordt met 10% verhoogd
Uiteraard kunt u deze formule ook schrijven zonder verwijzing naar de Measure: SUM(Facturen[bedrag]) * 1.1
Het heeft wel de voorkeur om zo veel mogelijk naar eerdere Measures te verwijzen in verband met de beheersbaarheid van de berekeningen. Mocht er een wijziging plaatsvinden in de omzetberekening, dan hoeft dit alleen gewijzigd te worden in de Omzet Measure. Alle andere berekeningen die verwijzen naar deze Omzet Measure worden dan direct ook meegenomen in de wijziging.