数据中的明细项一般都有很多,可是我们关注的往往只是前几名,所以在报表中只展示关注的部分,就十分常用。
有了上篇(这几个示例,帮你深入理解RANKX排名)关于排名的铺垫,仅显示前N名就简单多了。
依然以上篇文章数据中的数据为例,按销售额的高低来显示前几名的产品,使用最常用的排名方式,
排名 = RANKX(ALL('产品'),[销售额])
有了这个排名,如果只想显示前5名,就可以这样写度量值,
销售额 前5名=
CALCULATE(
[销售额],
FILTER(VALUES('产品'),[排名]<=5)
)
在矩阵中展示一下,
如果想关注前十名,将上述度量值中的5改成10即可,不过关注的数量总是会变化的,不能每次都重新写个度量值,其实也可以利用参数动态显示前N名。
关于如何使用参数,以前的文章中已经介绍过:创建PowerBI「参数」轻松搞定动态分析
直接创建一个参数,比如从1到20,
然后在画布上会自动出现一个切片器,重新写一个度量值,把排名的值替换为刚建立的参数,
销售额 前N名 =
CALCULATE(
[销售额],
FILTER(
VALUES('产品'),
[排名]<=SELECTEDVALUE('参数'[参数])
)
)
这样就可以随心所欲的查看前N名了,
为了突出显示销售冠军是哪个产品,还可以单独写个度量值把这个产品名称找出来,
销量第一的产品 =
CALCULATE(
FIRSTNONBLANK('产品'[产品名称],1),
FILTER('产品',[排名]=1)
)
用卡片图展示出来,
同理,可以把1改成2、3,就是销售额额的第二名和第三名。
所有的这些排名都是可以随其他维度的筛选动态变化的,比如不同时间段的排名情况,
总结
想动态展示前N名的名称和金额,可以用矩阵或者条形图等来展示,其中度量值参考这个写法:
销售额 前N名 =
CALCULATE([销售额],
FILTER(VALUES('产品'),
[排名]<=SELECTEDVALUE('参数'[参数])))
如果只想找出排名第几的是谁,一般使用卡片图来展示,其中度量值参考如下写法:
销量第N的产品 =
CALCULATE(
FIRSTNONBLANK('产品'[产品名称],1),
FILTER('产品',[排名]=N))
下次遇到类似情况是不是就知道怎么做啦:)
/推荐阅读/
长按下方图片加入「PowerBI星球」,和我一起,精进技能。
网友评论