rank函數怎么用排名降序 rank函數怎么用降序

【rank函數怎么用排名降序 rank函數怎么用降序】


文章插圖
rank函數怎么用排名降序 rank函數怎么用降序

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