为了账号安全,请及时绑定邮箱和手机立即绑定

101_Power Pivot DAX 排名后加上总排名数

标签:
数据结构

1、背景

每次写rank的时候,有了排名就可以了,排名1,2,3,4,5这样不是很清晰吗?但是中国式报表的老板们说你能不能在排名后面加一个总排名数呢,就像1/5,2/5,3/5,4/5,5/5。谁叫是老板呢,于是就有了报表加工出来后各种组合,比如vlookup。既然都用了dax,为什么不能dax呢。

那就dax写一写咯,

2、数据源(上图)

3、效果未切片 (再上图)

4、效果加上切片 请注意R1和R2的变化,很重要。(接着上图)

5、接下来一如既往的贴上dax咯。

total:=SUM(data[value])

R1:=IF (
HASONEVALUE ( data[部门] ),
VAR P =
SUMMARIZE ( ALL ( ‘data’ ), ‘data’[部门], “P”, ‘data’[total] )
RETURN
RANKX ( P, ‘data’[total], ‘data’[total], DESC, DENSE ),
BLANK ()
)

R1/M:=IF (
    HASONEVALUE ( data[部门] ),
    VAR P =
        SUMMARIZE ( ALL ( 'data' ), 'data'[部门], "P", 'data'[total] )
    VAR M =
        CALCULATE ( DISTINCTCOUNT ( data[部门] ), ALL ( data[部门] ) )
    VAR R =
        RANKX ( P, 'data'[total], 'data'[total], DESC, DENSE )
    RETURN
        CONCATENATE ( R, "/" & M ),
    BLANK ()
)

R2:=IF (
    HASONEVALUE ( data[部门] ),
    VAR P =
        SUMMARIZE ( ALLSELECTED ( 'data' ), 'data'[部门], "P", 'data'[total] )
    RETURN
        RANKX ( P, 'data'[total], 'data'[total], DESC, DENSE ),
    BLANK ()
)

R2/M:=IF (
    HASONEVALUE ( data[部门] ),
    VAR P =
        SUMMARIZE ( ALLSELECTED ( 'data' ), 'data'[部门], "P", 'data'[total] )
    VAR M =
        CALCULATE ( DISTINCTCOUNT ( data[部门] ), ALLSELECTED ( data[部门] ) )
    VAR R =
        RANKX ( P, 'data'[total], 'data'[total], DESC, DENSE )
    RETURN
        CONCATENATE ( R, "/" & M ),
    BLANK ()
)

6、小结下

请注意观察R1和R2的变化,其实就是all和allselected的变化。

在不同的上下文的筛选下,会得到不同的结果,all则排名始终在所有排名中作排名,allselected则是选择的排名中排名。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消