Informatie over rijcontext
Nu u berekende kolommen hebt gemaakt, kunt u leren hoe de bijbehorende formules worden geëvalueerd.
De formule voor een berekende kolom wordt geëvalueerd voor elke tabelrij. Daarnaast wordt deze geëvalueerd binnen de rijcontext, dat wil zeggen de huidige rij. Bekijk de berekende kolomdefinitie Einde fiscaal jaar:
Due Fiscal Year =
"FY"
& YEAR('Due Date'[Due Date])
+ IF(
MONTH('Due Date'[Due Date]) <= 6,
1
)
Wanneer de formule wordt geëvalueerd voor elke rij, retourneert de kolomverwijzing 'Due Date'[Due Date]
de kolomwaarde voor deze rij. U zult merken dat Microsoft Excel hetzelfde principe heeft voor werken met formules in Excel-tabellen.
Rijcontext gaat echter niet verder dan de tabel. Als de formule moet verwijzen naar kolommen in andere tabellen, hebt u twee opties:
- Als de tabellen direct of indirect gerelateerd zijn, kunt u de
RELATED
DAX-functie ofRELATEDTABLE
gebruiken. DeRELATED
functie haalt de waarde op aan de een-zijde van de relatie, terwijl deRELATEDTABLE
waarden aan de veel-zijde ophaalt. DeRELATEDTABLE
functie retourneert een tabelobject. - Wanneer de tabellen niet zijn gerelateerd, kunt u de
LOOKUPVALUE
DAX-functie gebruiken.
Probeer over het algemeen waar mogelijk de RELATED
functie te gebruiken. Het werkt meestal beter dan de LOOKUPVALUE
functie vanwege de manier waarop relatie- en kolomgegevens worden opgeslagen en geïndexeerd.
Voeg nu de volgende berekende kolomdefinitie toe aan de tabel Sales :
Discount Amount =
(
Sales[Order Quantity]
* RELATED('Product'[List Price])
) - Sales[Sales Amount]
Met de definitie van de berekende kolom wordt de kolom Kortingsbedrag toegevoegd aan de tabel Verkoop . Power BI evalueert de berekende kolomformule voor elke rij van de tabel Sales . De waarden voor de kolommen Orderhoeveelheid en Verkoophoeveelheid worden opgehaald binnen de rijcontext. Omdat de kolom Catalogusprijs echter tot de tabel Product behoort, is de RELATED
functie vereist om de catalogusprijswaarde voor het verkoopproduct op te halen.
Rijcontext wordt gebruikt wanneer berekende kolomformules worden geëvalueerd. Deze wordt ook gebruikt wanneer een functieklasse, iterator-functies genoemd, worden gebruikt. Iterator-functies bieden u de flexibiliteit om geavanceerde samenvattingen te maken. Iterator-functies worden beschreven in een latere module.