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

LASTNONBLANKVALUE

为表的每行计值表达式,返回结果不为空的最后一个列值所对应的表达式的值。

语法

LASTNONBLANKVALUE ( <列名>, <表达式> )
参数 属性 描述
列名 列表达式
表达式 沿着列逐行计算的表达式

返回值

标量 一个任何类型的值

备注

虽然被归为迭代函数,但与 LASTNONBLANK 不同的是,LASTNONBLANKVALUE 的第一参数不提供行上下文,<表达式>参数在筛选上下文中计值,这个筛选上下文由第一参数的当前行转换而来,由于这个转换不在<表达式>内部发生,所以此筛选上下文相当于一个外部筛选上下文,与<表达式>的所受的其他外部筛选处于同一级别。

2024 年 2 月版本的 Power BI Desktop 中此函数在某些场景下的计算结果发生了变化,具体原因暂不明确,如果你也遇到类似问题,可以先参考上面的解释

<列名>参数可以是以下任一项 :

  • 对列的引用。只有在这种情况下才应用上下文转换,因为列引用被替换为CALCULATETABLE ( DISTINCT ( <列名> ) )
  • 返回单列的表表达式
  • 定义单列的布尔表达式

尽管 LASTNONBLANKVALUE 通常用于日期,但它也可以应用于任何数据类型的列。

LASTNONBLANKVALUE 等价于下面的表达式:

CALCULATE (
    <Expression>,
    LASTNONBLANK (
        <ColumnName>,
        CALCULATE ( <Expression> ) 
    )
)

LASTNONBLANKVALUE 未针对 DirectQuery 进行优化,在计算列和行级别安全性公式中完全不受支持。 但可以在度量值和查询公式中使用,只不过无法保证性能。

LASTNONBLANKVALUE 的内在行为类似 SUMMARIZECOLUMNS,在嵌套使用的情景下(比如作为迭代函数的第二参数)可能会得到异常结果,未来的这种值行为可能会发生变化,建议你尽量避免嵌套使用。

示例

以下公式返回销售额不为空的最后一个地区经理的销售额:

= LASTNONBLANKVALUE('Table'[地区经理],CALCULATE(SUM('Table'[销售额])))

详细了解 LASTNONBLANKVALUE 的行为,请参考扩展阅读:

 

说点什么

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

DAX 函数大全

DAX 查询

DAX 运算符