从数据到信息
从信息到洞察

EARLIER

使用之前的行上下文而不是最后一个行上下文检索列的值。

语法

EARLIER ( <列名>, [<数字>] )
参数 属性 描述
列名 包含所需值的列
数字 可选 要检索的上下文的层数,默认值 1

返回值

标量 一个任意类型的值

按数字检索的第 N 层外部行上下文处的列值

备注

EARLIER 需要在开始扫描表之前存在行上下文,否则它将返回错误。

EARLIER 在执行时虽然在引擎内部会进行一些优化,但仍可能比较缓慢,因为从理论上讲,它可能需要执行大量操作,操作次数接近于总行数(列中)乘以相同数字(具体数值因表达式的语法而异) 。 例如,如果列中有 10 行,则可能需要大约 100 次操作;如果有 100 行,则可能会执行接近 10,000 次操作。

建议使用变量(VAR)代替 EARLIER 保存外层行上下文的值,以便在后续计算时引用

示例

以下公式创建了一个新的计算列 SubCategorySalesRanking ,计算产品子类别的排名

Ranks :=
COUNTROWS (
    FILTER (
        ProductSubcategory,
        EARLIER ( ProductSubcategory[Sales] ) < ProductSubcategory[Sales]
    )
) + 1

扩展阅读:

 

说点什么

1000
 
鼓掌微笑开心憧憬爱你色并不觉得吃瓜doge二哈喵喵思考笑哭捂脸悲伤大哭抓狂汗偷笑打脸捂眼黑线问号晕拜拜闭嘴衰咒骂ok作揖
  订阅本文评论  
提醒
DAX 圣经

DAX 函数大全

DAX 查询

DAX 运算符