PowerBI实用技巧 您所在的位置:网站首页 分类排名函数 PowerBI实用技巧

PowerBI实用技巧

2024-06-14 15:51| 来源: 网络整理| 查看: 265

今天分享一波在使用排序功能时的小技巧。类似的方法其实有很多种,这边我拎出来一个最容易上手理解的方法分享给大家。

问题解析:如何解决当首要排序列遇到相同值时,依次要排序列进行排序?(例如,当依销量排序时,遇到相同销量,而你想在销量相同时依展示的维度进行排序,怎么做?)

DEMO数据如下:

 

由上数据我们可以看出来NAME为C、D的销售值是相等的,当我们进行正常排序时RANK应该为如下效果: 

DAX:

 常规Rank = IF(HASONEVALUE('Table'[NAME]),RANKX(ALL('Table'[NAME]),[Salesvalue]))

如上图,可以看到C和D都排名第一,此时我想当销售额相等时,NAME排在前面的则为第一名,其次第二名,以此类推。。。

       这个时候我们就需要添加一个次排序列,我们为NAME列进行一个MAX取值变换为度量值,对NAME度量值进行RANK排序,通过原有的常规RANK+次排序列实现我们想要的效果,效果如下:

DAX:RANK VALUES = RANKX(ALL('Table'[NAME]),[Salesvalue])+RANKX(ALL('Table'[NAME]),[MAXNAME])-1

           主次排序Rank = IF(HASONEVALUE('Table'[NAME]),RANKX(ALL('Table'[NAME]),[RANK VALUES],,ASC))

备注:刚开始学习RANK函数的小伙伴可能会一直出来RANK为都为1的情况。第一 没有使用ALL或者ALLSELECTED函数去排除行上下文和筛选上下文,导致排序受到上下文的影响。第二 表达式没有使用提前聚合好的度量值,而直接使用类似SUM(xxx)这样的聚合函数

此文章参考https://zhuanlan.zhihu.com/p/101377339进行理解实践简写,如理解实践方面有问题,欢迎留言记录。

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有