#Powerbi 1分钟学会,RANK函数,多字段排名函数

一:思维导图&数据源示例

1.1思维导图

  1.2示例数据源

 二:参数构成

 三:案例度量值

3.1 基础度量值

总销量 = CALCULATE(SUM('数据源'[销量]))
总销售额 = CALCULATE(SUM('数据源'[销售额]))

3.2 RANK度量值

RANK排名 =

RANK(

    ---MAKE BY SIMONE

    ---第一参数,skip/dense,可选参数,相同值排名处理, 省略是会默认为skip

    SKIP,

    ---第二参数,可选参数,表表达式,计算排名的表,这里选择了数据源中的产品和产品分类列,是因为我们演示的表中,只拉了这两个维度的统计字段,如果涉及更多层级的计算,

    ---可以在ALLSELECTED参数中,新增字段,这样可以轻松实现多层级、多字段排名

    ALLSELECTED('数据源'[产品],'数据源'[产品分类]),

    ---第三参数,可选参数,排序依据,如省略第2参数必须指定表,这里选择了【总销量】和【总销售额】两个字段来进行排名依据,计算排名中会根据参数的位置确定优先级

    ---例如,我们将总销量放在第一个参数位置,那么会优先根据总销量排名,当遇到总销量一样的,才会根据总销售额继续排名

    ORDERBY([总销量],DESC,[总销售额],DESC),

    ---第四参数,可选参数,暂时没有用,这里直接用逗号跳过

      ,

    ---第五参数,可选参数,分区依据,如果省略,会默认为一个分区,即不会分区,在这里,我们指定了【产品分类】,可以简单理解为,我们确定了排名的区域,即根据我们奶茶的类型进行排名

    ---有点类似与组内排名,而这里的参数相当于指定组,然后根据上面参数的逻辑去排名

    PARTITIONBY('数据源'[产品分类])

    )

3.3 RANKX度量值

RANKX排名 = RANKX(ALL('数据源'[产品]),[总销量])

将对应的度量值拉入表格视觉对象,我们可以看到,RANK函数实现了多字段的排名功能,并且可以分组去进行多字段排名。而RANKX实现不了,或者说需要其他辅助,才能实现同样的效果。

四:注意点

1:ALLSELECTED参数,应该和度量值应用的行上下文的字段一致

2:PARTITIONBY参数,要注意理解分区概念,分区应该是第一步,后续的排序逻辑,都是基于分区后的数据,进行排序

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值