Introduktion

Slutförd

Titta på följande video och lär dig mer om iteratorfunktionerna.

DAX (Data Analysis Expressions) innehåller en serie funktioner som kallas iteratorfunktioner. Iteratorfunktioner går igenom alla rader i en specifik tabell och utvärderar ett givet uttryck för varje rad. De ger dig flexibilitet och kontroll över hur dina modellberäkningar sammanfattar data.

Nu är du bekant med sammanfattningsfunktioner med en kolumn, inklusive SUM, COUNT, MIN, MAXoch andra. Var och en av dessa funktioner har en motsvarande iteratorfunktion som identifieras av Suffixet "X", till exempel SUMX, COUNTX, MINX, MAXXoch andra. Dessutom finns specialiserade iteratorfunktioner som utför filtrering, rangordning, halvadditiva beräkningar över tid, med mera.

Gemensamt för alla iteratorfunktioner är att du måste skicka in en tabell och ett uttryck. Tabellen kan vara en modelltabellreferens eller ett uttryck som returnerar ett tabellobjekt. Uttrycket måste utvärderas mot ett skalärt värde.

Sammanfattningsfunktioner med en kolumn, till exempel SUM, är shorthand-funktioner. Internt konverterar SUM Microsoft Power BI funktionen till SUMX. Därför ger följande två måttdefinitioner samma resultat med samma prestanda.

Revenue = SUM(Sales[Sales Amount])
Revenue =
SUMX(
    Sales,
    Sales[Sales Amount]
)

Det är viktigt att förstå hur kontext fungerar med iteratorfunktioner. Eftersom iteratorfunktioner går igenom tabellrader utvärderas uttrycket för varje rad i radkontexten, på samma sätt som beräknade kolumnformler. Tabellen utvärderas i filterkontext, så om du använder det tidigare exemplet på måttdefinition för intäkter , om ett visuellt rapportobjekt filtrerades efter räkenskapsåret 2020, skulle tabellen Sales innehålla försäljningsrader som har beställts under det året. Filterkontexten beskrivs i modulen om filterkontext.

Viktigt

När du använder iteratorfunktioner bör du undvika att använda stora tabeller (med rader) med uttryck som använder expansiva DAX-funktioner. Vissa funktioner, till exempel SEARCH DAX-funktionen, som genomsöker ett textvärde som söker efter specifika tecken eller text, kan resultera i långsamma prestanda. LOOKUPVALUE Dax-funktionen kan också resultera i långsam hämtning rad för rad av värden. I det här andra fallet använder du RELATED DAX-funktionen i stället när det är möjligt.