9.3 Rij-context in measures
Een Measure werkt standaard in filter-context. Het is echter mogelijk om in een Measure tijdelijk in rij-context te werken door de inzet van specifieke functies die in rij-context werken. Let erop dat een Measure de uiteindelijke waarde altijd weer evalueert in context van alle filters. Hieronder enkele veelgebruikte functies die in rijcontext werken:
- SUMX;
- AVERAGEX;
- FILTER;
- COUNTX;
- RANKX.
Kosten uitrekenen
Op deze manier kunt u ook de kosten uitrekenen op basis van een Measure, bijvoorbeeld door middel van de SUMX-functie. SUMX([TABEL], [EXPRESSIE IN RIJ-CONTEXT])
De SUMX-functie bestaat uit twee parameters:
- Bij de eerste parameter geeft u aan over welke rijen de expressie moet itereren. In het twee onderdeel vult u de berekening en verwijzingen naar de kolommen in waar de waarden in rij-context worden opgehaald en gebruikt in de berekening. Voor het uitrekenen van de kosten in een Measure kunt u dan deze formule gebruiken: Kosten = SUMX(Orders, Orders[Hoeveelheid] * RELATED(‘Product’[KostenPerStuk]))
- Het tweede gedeelte van de formule is hetzelfde als de berekening van de kosten middels een Calculated column (zie paragraaf 8.2). De formules zijn gelijk omdat de berekeningen in rij-context werken. Het verwijzen naar de KostenPerStuk-kolom uit de Product-tabel moet dus ook in de Measure gebeuren middels de RELATED-functie.
Het eindresultaat van de SUMX-functie is dat de waarden van de expressie via de reguliere SUM-functie vervolgens weer bij elkaar wordt opgeteld. Ook de spelregel dat deze daarna rekening houdt met de filter-context geldt voor de SUMX-functie als u deze in een Measure gebruikt.