102_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则是选择的排名中排名。

关于allselected请移步官方文档:

ALLSELECTED 函数 (DAX)​

by 焦棚子
焦棚子的文章目录

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值