Få mere at vide om rækkekontekst

Fuldført

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 eller RELATEDTABLE DAX. Funktionen RELATED henter værdien på en-siden af relationen, mens RELATEDTABLE henter værdier på mange-siden. Funktionen RELATEDTABLE 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.