Få mere at vide om rækkekontekst
Nu, hvor du har oprettet beregnede kolonner, kan du få mere at vide om, hvordan deres formler evalueres.
Formlen for en beregnet kolonne evalueres for hver tabelrække. Desuden evalueres den inden for rækkekonteksten, hvilket betyder den aktuelle række. Se nærmere på definitionen af den beregnede kolonne Due Fiscal Year:
Due Fiscal Year =
"FY"
& YEAR('Due Date'[Due Date])
+ IF(
MONTH('Due Date'[Due Date]) <= 6,
1
)
Når formlen evalueres for hver række, returnerer kolonnereferencen 'Due Date'[Due Date]
kolonneværdien for den pågældende række. Du kan se, at Microsoft Excel har det samme koncept for arbejde med formler i Excel-tabeller.
Rækkekonteksten udvides dog ikke ud over tabellen. Hvis formlen skal referere til kolonner i andre tabeller, har du to muligheder:
- Hvis tabellerne er relateret direkte eller indirekte, kan du bruge
RELATED
funktionen ellerRELATEDTABLE
DAX. FunktionenRELATED
henter værdien på en-siden af relationen, mensRELATEDTABLE
henter værdier på mange-siden. FunktionenRELATEDTABLE
returnerer et tabelobjekt. - Når tabellerne ikke er relateret, kan du bruge
LOOKUPVALUE
DAX-funktionen.
Prøv generelt at bruge funktionen, når det RELATED
er muligt. Den fungerer normalt bedre end funktionen LOOKUPVALUE
på grund af de måder, relationen og kolonnedataene gemmes og indekseres på.
Føj nu følgende definition af en beregnet kolonne til tabellen Sales :
Discount Amount =
(
Sales[Order Quantity]
* RELATED('Product'[List Price])
) - Sales[Sales Amount]
Definitionen af den beregnede kolonne føjer kolonnen Discount Amount til tabellen Sales . Power BI evaluerer formlen for den beregnede kolonne for hver række i tabellen Sales . Værdierne af kolonnerne Order Quantity og Sales Amount hentes i rækkekonteksten. Da kolonnen Listepris tilhører tabellen Product , RELATED
er funktionen dog påkrævet for at hente listeprisværdien for salgsproduktet.
Rækkekontekst bruges, når formler for beregnede kolonner evalueres. Den bruges også, når funktionsklassen iteratorfunktioner bruges. Iteratorfunktioner giver dig fleksibilitet til at oprette avancerede opsummeringer. Iteratorfunktioner beskrives i et senere modul.