前面大概用了兩篇,把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.3
RETURN
CALCULATE([銷售金額(萬)],
FILTER(
VALUES('產品表'[品牌]),
RANKX(VALUES('產品表'[品牌]),[銷售金額(萬)],,DESC)<=ProductPercent
)
)

前30%金額佔比 = DIVIDE([前30%商品金額],[銷售金額(萬)])

當然這裡也可以增加一個動態的選擇,方法和上面第二個一樣,這裡就不演示了。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/233070.html