简介

已完成

观看以下视频,了解有关迭代器函数的信息。

数据分析表达式 (DAX) 包括一组称为迭代器函数的函数。 迭代器函数枚举给定表的所有行,并为每一行计算给定的表达式。 它们为您提供了灵活性,并控制了模型计算汇总数据的方式。

现在,你熟悉单列汇总功能,其中包括 SUM、COUNT、MIN、MAX 和其他函数。 其中每个函数都有一个等效的迭代器函数,该函数由“X”后缀标识,如 SUMX、COUNTX、MINX、MAXX 和其他函数。 此外,还存在执行筛选、排名、时间半加法运算等专用迭代器函数。

具有所有迭代器函数的特征,必须传入表和表达式。 该表可以是模型表引用,也可以是返回表对象的表达式。 该表达式必须计算为标量值。

单列汇总函数(如 SUM)是速记函数。 在内部,Microsoft Power BI 将 SUM 函数转换为 SUMX。 因此,以下两个度量值定义将产生相同的结果;当 Power BI 计算这些度量值或其性能时,它不区分这些度量值的定义。

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

了解上下文如何与迭代器函数一起使用非常重要。 由于迭代器函数通过表行枚举,因此将对行上下文中的每一行计算表达式,这与计算列公式类似。 在筛选器上下文中计算该表,因此,如果使用的是前一个收入度量值定义示例,如果按会计年度 FY2020 筛选报表视觉对象,则销售表将包含按该年排序的销售行。 在筛选器上下文模块中介绍了筛选器上下文。

重要

使用迭代器函数时,请确保避免将大型表(行)用于使用大规模 DAX 函数的表达式。 某些函数(如 SEARCH DAX 函数可扫描查找特定字符或文本的文本值,这会导致实现速度缓慢。 此外,LOOKUPVALUE DAX 函数可能会导致对值进行较慢的逐行检索。 在这第二种情况下,应尽可能改用 RELATED DAX 函数。