Ú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, COUNTMIN, , MAXa dalších. Každá z těchto funkcí má ekvivalentní funkci iterátoru, která je identifikována příponou "X", například SUMX, COUNTX, MINX, MAXXa dalšími. 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 SUM funkci na SUMX. V důsledku toho následující dvě definice měr povedou ke stejnému výsledku 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( Výnosy ), pokud byl vizuál sestavy filtrován podle fiskálního roku FY2020, pak by tabulka Sales (Prodej ) 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, jako je SEARCH funkce DAX, která prohledává textovou hodnotu, která hledá konkrétní znaky nebo text, můžou vést k nízkému 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 místo toho RELATED funkci DAX, kdykoli je to možné.