rank函数怎么用排名降序 rank函数怎么用降序

【rank函数怎么用排名降序 rank函数怎么用降序】


文章插图
rank函数怎么用排名降序 rank函数怎么用降序

文章插图
前面大概用了两篇,把RANKX排名函数进行了详细的解释和演示,全是偏理论,实际中实用性不强,所以这一篇再来举例排名函数的实际使用案例 。突出显示前三名和后三名,动态展示前N条数据,前N%商品销售占比,下面分别演示一下 。
【突出显示前/后三名】
这是一个在数据可视化展示中很常用的标记,把做得好的和做得不好的数据突出标记出来 。思路很简单,首先计算出排名,然后IF语句判断一下是否小于等于3就行了,最后自定义颜色进行展示即可 。
首先计算出每个产品的排名,具体使用方法可参考前面一篇,有详细的解释,DAX语句如下↓
品牌排名 = RANKX(ALL('产品表'[品牌]),[销售金额(万)],,DESC,Skip)然后在写一个颜色判断的语句,如果小于等于3就是绿色,DAX写法如下↓
颜色判断 = IF([品牌排名]<=3,"#91C851",BLANK())
我们可以发现,在颜色判断哪个地方,前三名就是我们自定义的颜色,然后我们只需要把颜色判断这个公式应用到对应的字段,满足条件的前三名就会显示我们自定义的颜色↓
前三名就被我们标记上颜色了,下面还需要把后三名标记成红色,思路是一样的,只是排名的时候按照升序排列就行了,然后在IF判断里面加一层判断就可以了,两个DAX语法如下↓
品牌反向排名 = RANKX(ALL('产品表'[品牌]),[销售金额(万)],,ASC,Skip)颜色判断 = IF([品牌排名]<=3,"#91C851",IF([品牌反向排名]<=3,"#DB5E5E",BLANK()))
好了,突出显示前/后三名就完成了,可以根据实际情况更改名次,改一下数字就行了,然后把多余的辅助列删除了就可以了 。
【动态展示前N条数据】
下面一个案例是动态展示前N条数据,我们还是以排名销售数量来举例 。首先还是要计算出每个品牌的排名情况,然后需要一个动态的辅助列,用来筛选我们需要动态展示前多少名的数据,DAX写法如下↓
前N名数据 = CALCULATE([销售金额(万)],FILTER(VALUES('产品表'),[品牌排名]<=SELECTEDVALUE('动态排名'[排名])))
【前N%商品销售占比】
有的时候我们会关心销售靠前的商品销售占比情况,就可以先求出前面比例的金额,然后根据产品排名来得到所需的占比 。我们这里求前30%商品金额的占比情况,DAX写法如下↓
前30%商品金额 = VAR ProductPercent = DISTINCTCOUNT('产品表'[品牌])*0.3RETURNCALCULATE([销售金额(万)],FILTER(VALUES('产品表'[品牌]),RANKX(VALUES('产品表'[品牌]),[销售金额(万)],,DESC)<=ProductPercent))
前30%金额占比 = DIVIDE([前30%商品金额],[销售金额(万)])
当然这里也可以增加一个动态的选择,方法和上面第二个一样,这里就不演示了 。