Úvod
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
, , MAX
a 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
, MAXX
a 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 SUM
je , 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é.