Introduktion

Fuldført

Se følgende video for at få mere at vide om iteratorfunktioner.

DAX (Data Analysis Expressions) indeholder en række funktioner, der kaldes iteratorfunktioner. Iteratorfunktioner optæller alle rækker i en given tabel og evaluerer et givet udtryk for hver række. De giver dig fleksibilitet og kontrol over, hvordan dine modelberegninger opsummerer data.

Nu kender du opsummeringsfunktioner med én kolonne, herunder SUM, COUNT, MIN, MAXog andre. Hver af disse funktioner har en tilsvarende iteratorfunktion, der identificeres af suffikset "X", f.eks SUMX. , COUNTX, MINX, MAXX, og andre. Der findes desuden specialiserede iteratorfunktioner, som kan udføre filtrering, rangering, semiadditive beregninger over tid og meget mere.

Som det gælder for alle iteratorfunktioner, skal du angive en tabel og et udtryk. Tabellen kan være en modeltabelreference eller et udtryk, der returnerer et tabelobjekt. Udtrykket skal evalueres til en skalarværdi.

Opsummeringsfunktioner med én kolonne, f.eks SUM. , er oversigtsfunktioner. Internt konverterer Microsoft Power BI funktionen SUM til SUMX. Derfor giver følgende to målingsdefinitioner det samme resultat med den samme ydeevne.

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

Det er vigtigt at forstå, hvordan kontekst fungerer sammen med iteratorfunktioner. Da iteratorfunktioner optæller tabelrækker, evalueres udtrykket for hver række i rækkekonteksten ligesom formler for beregnede kolonner. Tabellen evalueres i filterkontekst, så hvis du bruger det tidligere eksempel på målingsdefinitionen Revenue, vil tabellen Sales indeholde salgsrækker, der blev bestilt i det pågældende år, hvis et rapportvisual blev filtreret efter regnskabsår FY2020. Filterkontekst er beskrevet i modulet om filterkontekst.

Vigtigt

Når du bruger iteratorfunktioner, skal du sørge for, at du undgår at bruge store tabeller (med rækker) med udtryk, der bruger omfattende DAX-funktioner. Nogle funktioner, f.eks SEARCH . DAX-funktionen, der scanner en tekstværdi, der søger efter bestemte tegn eller tekst, kan resultere i langsom ydeevne. LOOKUPVALUE DAX-funktionen kan også resultere i en langsom hentning af værdier række for række. I dette andet tilfælde skal du i stedet bruge RELATED DAX-funktionen, når det er muligt.