數據中的明細項一般都有很多,可是我們關注的往往只是前幾名,所以在報表中只展示關注的部分,就十分常用。
有了上篇(這幾個示例,幫你深入理解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))
下次遇到類似情況是不是就知道怎么做啦:)