Úvod

Dokončeno

Podívejte se na následující video, kde získáte další informace o funkcích iterátoru.

Jazyk DAX (Data Analysis Expressions) obsahuje řadu funkcí označovaných jako funkce iterátoru. Funkce iterátoru vytvoří výčet všech řádků dané tabulky a vyhodnotí daný výraz pro každý řádek. Poskytují flexibilitu a kontrolu nad tím, jak výpočty modelu sumarizují data.

Teď už znáte funkce souhrnu s jedním sloupcem, včetně SUM, COUNT, MIN, MAXa dalších. Každá z těchto funkcí má ekvivalentní funkci iterátoru, která je určená příponou X, například SUMX, COUNTX, MINX, MAXXa další. Kromě toho existují specializované funkce iterátoru, které provádějí například filtrování, řazení nebo výpočty v průběhu času s polovičním přičítáním.

Pro všechny funkce iterátoru je charakteristické, že vyžadují předání tabulky a výrazu. Tabulka může být odkazem na tabulku modelu nebo výrazem, který vrací objekt tabulky. Výraz musí být vyhodnocen jako skalární hodnota.

Funkce souhrnu s jedním sloupcem, jako SUMje , jsou zkrácené funkce. Microsoft Power BI interně převede funkci na SUMSUMX. Výsledkem je, že následující dvě definice měr vygenerují stejný výsledek se stejným výkonem.

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

Je důležité pochopit, jak funkcemi iterátoru pracují s kontextem. Vzhledem k tomu, že funkce iterátoru vyčíslují řádky tabulky, je výraz vyhodnocen pro každý řádek v kontextu řádku, podobně jako u vzorců počítaných sloupců. Tabulka se vyhodnocuje v kontextu filtru, takže pokud používáte předchozí příklad definice míry Revenue a vizuál sestavy byl filtrován podle fiskálního roku FY2020, tabulka Sales by obsahovala řádky prodeje seřazené v daném roce. Podrobnosti o kontextu filtru najdete v modulu, který se na něj zaměřuje.

Důležité

Pokud používáte funkce iterátoru, ujistěte se, že nepoužíváte velké tabulky (řádky) s výrazy, které používají rozsáhlé funkce jazyka DAX. Některé funkce, například SEARCH funkce DAX, která prohledává textovou hodnotu, která hledá konkrétní znaky nebo text, můžou způsobit snížení výkonu. LOOKUPVALUE Funkce DAX také může vést k pomalému načítání hodnot po jednotlivých řádech. V tomto druhém případě použijte RELATED místo toho funkci DAX, kdykoli je to možné.