rank 用法怎麼才正確?避免這些常見錯誤很重要!
哈囉,各位朋友,今天來跟大家聊聊我最近在工作中實際用到的rank
這個函數。其實也不是什麼高深莫測的東西,就是Excel裡面一個挺實用的小功能,但有時候要用的時候,腦袋就是會卡一下,想不起來細節怎麼弄。我就把我這次摸索的過程記錄下來,分享給大家參考參考。
事情的起因
是這樣的,最近我手頭上有個小任務,要幫一堆數據做個排名。你懂的,就是那種業績、分數之類的,老闆想看誰是第一名,誰又是吊車尾。一開始我想著,,排序嘛點一下就但後來發現,不行,我還得保留原來的順序,只是旁邊加一欄排名就這時候我就想想,以前好像用過一個東西...對了!是rank
函數!

開始動手試試
於是我就打開我的Excel,找了一列數字來試試看。比如我有這麼一串數字:
- 85
- 92
- 78
- 92
- 60
我想要知道每個數字在這堆數字裡面排第幾。我就在旁邊一個空白的儲存格開始敲鍵盤。=RANK(
,它會提示我要放什麼東西進去。
第一個參數 (number): 這個好理解,就是要幫哪個數字排名的意思。比如我要幫第一個85分排名,那我就選那個85分的儲存格,假設它是A2好了。
第二個參數 (ref): 這個是參考範圍,也就是說,要在哪些數字裡面去比較來排名。以上面的例子來說,就是A2到A6這一整串數字。這裡有個小技巧,也是我以前常常忘記的,就是這個範圍,通常要用符號把它鎖定起來,像是$A$2:$A$6
。為什麼?因為如果你等一下要把公式往下拉,套用到其他數字上,這個範圍如果不鎖定,它就會跟著往下跑,那比較的範圍就錯了,排名自然也就亂七八糟了。
第三個參數 ([order]): 這個參數是選填的,方括號就代表你可以不填。它是決定要怎麼排,是數字大的排前面(降序),還是數字小的排前面(升序)。
- 如果填0或者不填:那就是降序,數字越大的,排名越靠前(比如100分是第1名)。我們一般算成績、算業績都是用這種。
- 如果填1:那就是升序,數字越小的,排名越靠前(比如跑100米,時間越短越厲害)。
我這次是要分數高的排前面,所以我第三個參數就直接省略了,或者填0也行。
實際操作與遇到的情況
所以我輸入的公式大概長這樣:=RANK(A2, $A$2:$A$6, 0)
或者 =RANK(A2, $A$2:$A$6)
。然後按下Enter!
第一個85分的排名出來了,是第3名。然後我把這個公式往下拉,套用到其他數字上:

- 85 -> 第3名
- 92 -> 第1名
- 78 -> 第4名
- 92 -> 第1名 (這裡要注意,跟上面那個92分並列第1)
- 60 -> 第5名
看到結果,我發現幾個事情:
關於重複值: 像那兩個92分,它們的排名都是第1名。這個是RANK
函數的預設做法,它會給相同數值的項目相同的排名。然後,下一個排名就會跳過。你看,沒有第2名,因為有兩個並列第1了,所以85分直接就是第3名。這點在跟人家解釋排名的時候要特別說明一下,不然人家可能會問:「咦?怎麼沒有第2名?」
關於錯誤值: 我也順便試了一下,如果我的數據範圍裡面有空白儲存格,或者不小心打進去一些文字而不是數字,那rank
函數可能會回傳一個錯誤值,像是#N/A
之類的。這時候報表看起來就會有點醜。如果要避免這種情況,我後來想到可以用IFERROR
這個函數把它包起來。比如改成=IFERROR(RANK(A2, $A$2:$A$6, 0), "")
,這樣如果出錯了,它就會顯示空白,看起來乾淨一點。
一些小補充
後來我又稍微查了一下,發現其實還有跟這兩個兄弟函數。的行為跟我上面用的RANK
基本上是一樣的,就是遇到相同數值時給予相同排名,然後跳過下一個排名。而的話,如果遇到相同數值,它會給一個平均排名。比如兩個並列第1,它可能會把第1和第2的平均值(1.5)給這兩個數值。不過我這次的任務用不到這麼複雜,簡單的RANK
或就夠用了。
所以說,這個rank
函數,雖然看起來簡單,但實際操作的時候,還是要注意一下鎖定範圍、排序方式,還有重複值怎麼處理的問題。這次我重新摸索了一遍,也算是又加深了印象。
總結一下
總之,這次用rank
函數幫數據排名的過程還算順利。就是一開始要想一下那三個參數分別要放什麼,尤其是第二個參數的範圍鎖定,還有第三個參數的升降序選擇。搞清楚這幾個點,基本上就沒什麼大問題了。希望我這次的實踐記錄,對那些偶爾需要用到rank
函數,但又不是很熟的朋友們有點幫助!下次再有什麼實用的發現,再跟大家分享!