前面大概用了兩篇,把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%商品金額],[銷售金額(萬)])
當然這裡也可以增加一個動態的選擇,方法和上面第二個一樣,這裡就不演示了。
End
最新評論