人生没有彩排
每一天都是现场直播

XF.Analysis.NextNonBlankValue

语法作用

返回下一个非空值。将按tbl参数的所有字段升序排序,然后基于当前行查找其下一个expression参数不为空的行,然后返回该行所对应的expression参数的值。

如果当前行的expression参数的值为空,则将直接返回空值。第一参数:任意返回表的表达式,第二参数:任意标量表达式,将在外部计值环境和第一参数提供的行上下文中计值。

注意:该函数的实现使用窗口函数来定位当前值,将以tbl参数作为窗口函数的relation参数,使用时需要满足窗口函数的限制。最佳实践:将要排序的维度字段作为tbl参数,另外为避免顺序不正确,建议tbl参数只包含单个字段。

XF.Analysis.NextNonBlankValue(tbl:table,expression:expr)

函数代码

该函数的实现代码如下:

/// 返回下一个非空值。将按tbl参数的所有字段升序排序,然后基于当前行查找其下一个expression参数不为空的行,然后返回该行所对应的expression参数的值。如果当前行的expression参数的值为空,则将直接返回空值。第一参数:任意返回表的表达式,第二参数:任意标量表达式,将在外部计值环境和第一参数提供的行上下文中计值。注意:该函数的实现使用窗口函数来定位当前值,将以tbl参数作为窗口函数的relation参数,使用时需要满足窗口函数的限制。最佳实践:将要排序的维度字段作为tbl参数,另外为避免顺序不正确,建议tbl参数只包含单个字段
FUNCTION XF.Analysis.NextNonBlankValue = (tbl:table,expression:expr) =>
    VAR CurVal = expression
    RETURN
    IF(
        NOT ISBLANK(CurVal),
        VAR TempTbl = ADDCOLUMNS(tbl,"Val",expression)
        VAR PreTbl = FILTER(WINDOW(1,REL,-1,ABS,TempTbl),NOT ISBLANK([Val]))
        RETURN
        MAXX(INDEX(1,PreTbl),[Val])
    )

应用示例

计算下一个非空的销售额。

XF.Analysis.NextNonBlankValue(ALL('Table'[Date]),CALCULATE(SUM('Table'[Sales])))

结果如下图所示:

赞(0) 打赏
版权声明:本文为夕枫的原创文章,著作权归作者所有,未经允许不得转载
文章名称:《PowerBI DAX自定义函数-XF.Analysis.NextNonBlankValue》
文章链接:https://www.ximaple.com/posts/1565.html
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册

Operation don't support