Lär dig mer om radkontext

Slutförd

Nu när du har skapat beräknade kolumner kan du lära dig hur deras formler utvärderas.

Formeln för en beräknad kolumn utvärderas för varje tabellrad. Dessutom utvärderas det i ett radsammanhang, vilket innebär den aktuella raden. Överväg definitionen för den beräknade kolumnen Förfalloräkenskapsår:

Due Fiscal Year =
"FY"
    & YEAR('Due Date'[Due Date])
        + IF(
            MONTH('Due Date'[Due Date]) <= 6,
            1
        )

När formeln utvärderas för varje rad returnerar referensen 'Due Date'[Due Date] kolumnvärdet för den raden. Du kommer att se att Microsoft Excel har samma koncept för att arbeta med formler i Excel-tabeller.

Radkontexten sträcker sig dock inte utanför tabellen. Om formeln behöver referera till kolumner i andra tabeller har du två alternativ:

  • Om tabellerna är relaterade, direkt eller indirekt, kan du använda RELATED dax-funktionen eller RELATEDTABLE . Funktionen RELATED hämtar värdet på ena sidan av relationen, medan RELATEDTABLE hämtar värden på många-sidan. Funktionen RELATEDTABLE returnerar ett tabellobjekt.
  • När tabellerna inte är relaterade kan du använda LOOKUPVALUE DAX-funktionen.

Försök i allmänhet att använda RELATED funktionen när det är möjligt. Den presterar vanligtvis bättre än LOOKUPVALUE funktionen på grund av hur relations- och kolumndata lagras och indexeras.

Lägg nu till följande definition av den beräknade kolumnen i tabellen Försäljning :

Discount Amount =
(
    Sales[Order Quantity]
        * RELATED('Product'[List Price])
) - Sales[Sales Amount]

Den beräknade kolumndefinitionen lägger till kolumnen Rabattbelopp i tabellen Försäljning . Power BI utvärderar formeln för den beräknade kolumnen för varje rad i tabellen Sales . Värdena för kolumnerna Orderantal och Försäljningsbelopp hämtas i radkontexten. Men eftersom kolumnen Listpris tillhör tabellen Product krävs funktionen RELATED för att hämta listprisvärdet för försäljningsprodukten.

Radkontext används när formler för beräknade kolumner utvärderas. Det används också när en klass med funktioner som kallas iteratorfunktioner används. Iteratorfunktioner ger dig flexibilitet att skapa avancerade sammanfattningar. Iteratorfunktioner beskrivs i en senare modul.