說到排名,大家是再熟悉不過了。從還在學校讀書時候的分數排名,到現在出來工作了,只要有考覈的需要,也都會涉及到排名。
下面就來學習一下Excel裏常見的排名方法吧。
1.如何排名?
排名函數(rank),返回指定數值在特定區域中的排名。其語法規則是:
rank(要進行比較的數值,在哪個區域比較,降序還是升序)
第三個參數“降序還是升序”,降序是0,升序是1,如果省略這個參數,則默認爲按照降序來進行排名。
案例:按分數從大到小對學生進行排名
在C2單元格輸入公式:
=rank(B2,$B$2:$B$11,0)
然後向下填充公式,即可求得所有學生的排名。
除了用rank函數來進行排名,我們還可以轉換一下思維:以猴子爲例,我們要求猴子的分數在所有學生中的排名情況。
2.如何選擇排名方式?
從上面的案例中,我們看到,猴子和馬雲都是排第1的,有兩個第1;而後就是蘇火火,排在了第3,而不是第2。
那麼如何實現,猴子和馬雲都是排第1,蘇火火排在第2(而不是第3)呢?
在C2單元格,利用countif函數,寫下如下公式:
=sumproduct(($B$2:$B$11>$B2)/countif($B$2:$B$11,$B$2:$B$11))+1
下拉填充公式,完成排名。可以看到,兩個並列排名第1之後,緊隨的是第2,而不是從第3開始。
那麼,這個公式怎麼理解呢?我們拆解每一步來看下。
第一步:$B$2:$B$11>$B2
意思就是拿B2:B11這個區域的每個數值,都與B2一一進行比較,然後返回邏輯值。如果大於就返回真(true),小於等於就返回假(false)。
第二步:countif($B$2:$B$11,$B$2:$B$11)
這是條件計數,對滿足條件的值進行計數,它的運算過程是:
countif($B$2:$B$11,B2)
countif($B$2:$B$11,B3)
countif($B$2:$B$11,B4)
……
意思是,統計B2單元格的值在B2:B11區域中出現的次數;統計B3單元的值在B2:B11區域中出現的次數;統計B4單元格的值在B2:B11區域中出現的次數……
第三步:($B$2:$B$11>$B2)/countif($B$2:$B$11,$B$2:$B$11)
第一步得到的是邏輯值,第二步得到的是每個數值出現的次數,邏輯值在參與運算的時候,true=1,false=0。也就是說條件$B$2:$B$11>$B2如果成立,則返回1,如果不成立,則返回0。0除以任何數,結果都爲0;而1除以出現的次數,就使得重複出現的數值只計算一次,避免重複計數。
第四步:
sumproduct(($B$2:$B$11>$B2)/countif($B$2:$B$11,$B$2:$B$11))+1
用sumproduct函數對結果進行加總求和,即對大於當前值的個數進行求和,如對大於B2的個數進行求和,共有N個,那麼,B2的排名就 N+1。
如果你對上面的公式理解起來實在很費勁,其實對於這種排名還有一個更簡單的方法,那就是藉助數據透視表。
3.如何用數據透視表實現排名?
在數據區域任意一單元格單擊,插入數據透視表
把“姓名”拖到行,把“分數”拖到值,連續拖兩次。
然後對“分數2”進行“值”字段設置
在彈出的【值字段設置】窗口裏,將值顯示方式設置爲“降序排列”
如圖,就得到了中式排名的效果:
修改透視表的列名稱,同時對排名進行降序排列,最終如下:
4.總結
排名可以使用rank函數來實現,默認的排名不符合使用習慣,可以使用sumproduct和countif函數的結合或者藉助數據透視表來實現排名。
推薦:人工智能時代的必學技能