前面大概用了两篇,把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%商品销售占比】
有的时候我们会关心销售靠前的商品销售占比情况,就可以先求出前面比例的金额,然后根据产品排名来得到所需的占比。我们这里求前30%商品金额的占比情况,DAX写法如下↓
前30%商品金额 = VAR ProductPercent = DISTINCTCOUNT('产品表'[品牌])*0.3RETURNCALCULATE([销售金额(万)], FILTER( VALUES('产品表'[品牌]), RANKX(VALUES('产品表'[品牌]),[销售金额(万)],,DESC)<=ProductPercent ))
当然这里也可以增加一个动态的选择,方法和上面第二个一样,这里就不演示了。