Inleiding

Voltooid

Bekijk de volgende video voor meer informatie over iterator-functies.

Dax (Data Analysis Expressions) bevat een familie functies die iteratorfuncties worden genoemd. Met iterator-functies worden alle rijen uit een opgegeven tabel opgesomd, en wordt voor elke rij een bepaalde expressie geëvalueerd. Ze bieden u flexibiliteit en controle over hoe uw modelberekeningen gegevens samenvatten.

Inmiddels bent u bekend met samenvattingsfuncties met één kolom, waaronder SUM, COUNT, MIN, MAXen andere. Elk van deze functies heeft een equivalente iterator-functie die wordt geïdentificeerd door het achtervoegsel 'X', zoals SUMX, COUNTX, MINX, MAXXen andere. Daarnaast bestaan er speciale iterator-functies voor filteren, classificeren, semi-additieve berekeningen in de loop van de tijd, en nog veel meer.

Net als bij alle andere iterator-functies moet u een tabel en een expressie doorgeven. De tabel kan een verwijzing naar een modeltabel zijn, of een expressie die een tabelobject retourneert. De evaluatie van de expressie moet resulteren in een scalaire waarde.

Samenvattingsfuncties met één kolom, zoals SUM, zijn verkorte functies. Intern converteert Microsoft Power BI de SUM functie naar SUMX. Als gevolg hiervan produceren de volgende twee metingdefinities hetzelfde resultaat met dezelfde prestaties.

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

Het is belangrijk om te begrijpen hoe context werkt met iterator-functies. Omdat iterator-functies tabelrijen opsommen, wordt de expressie geëvalueerd voor elke rij in de rijcontext, vergelijkbaar met berekende kolomformules. De tabel wordt geëvalueerd in de filtercontext, dus als u het vorige voorbeeld van de meting voor omzet gebruikt en een rapportvisual is gefilterd op boekjaar FY2020, bevat de tabel Sales verkooprijen die in dat jaar zijn besteld. Filtercontext wordt beschreven in de filtercontextmodule.

Belangrijk

Wanneer u iteratorfuncties gebruikt, moet u voorkomen dat u grote tabellen (van rijen) gebruikt met expressies die gebruikmaken van uitgebreide DAX-functies. Sommige functies, zoals de SEARCH DAX-functie, die een tekstwaarde scant die zoekt naar specifieke tekens of tekst, kunnen leiden tot trage prestaties. LOOKUPVALUE De DAX-functie kan ook leiden tot een trage, rij-voor-rij ophalen van waarden. Gebruik in dit tweede geval, indien mogelijk, de RELATED DAX-functie.