不知道從什麼時候開始,在每一個東西上面都有個日子,秋刀魚會過期,肉醬也會過期,連保鮮紙都會過期。我開始懷疑,在這個世界上,還有什麼東西是不會過期的?——《重慶森林》
又到了今天的學習時間,作者來分享關于排名的幾個函數公式,不管是常規排名,還是非常中國式的排名,或者是倒數排名,隻要學會以下幾個公式,都能輕松搞定所有排名問題。
直入正題,我們需要對下圖中學生的”三科平均成績“進行排名,成績從高至低一次排名。
所謂的常規普通排名,即有相同排名時會跳過之後的排名,例如5,4,4,3四位數,普通排名為1,2,2,4;
而中國式排名,有相同排名時不會跳過後續的排名,如5,4,4,3四位數,中國式排名為1,2,2,3.
公式一:RANK函數
首先介紹在excel中計算排名的專用函數——rank。
rank函數的表達式為:=rank(數值,引用區域,排位方式)
RANK函數三個參數中,最後一個參數可以省略,默認為0,即升序排序。
按照它的表達式,可以輸入公式:=RANK(F3,$F$3:$F$40)
便得到了學生們三科平均成績的排名。
公式二:COUNTIF函數
countif函數實際是計數函數,用來統計一個區域中符合指定條件的單元格個數。
它的表達式為:=countif(區域,條件)。
看上去語法非常簡單,就兩個參數,而第1參數區域通常是固定的,重點在于條件的設置。
在表格中,我們要計算平均成績排名,條件可以設置為大于學生的三科平均成績,即>f3,作者先寫下完整公式,再通過一個例子來詳細說明它的含義。
公式為:=COUNTIF($F$3:$F$40,">"&F3) 1
這個公式的含義是在計算$F$3:$F$40單元格區域中,數值大于F3數值的單元格個數。這裡要注意單元格的引用方式,區域為絕對引用,條件是相對引用,這樣才能正确填充公式。
如公式所寫,F3的值是96,當條件">96"時,我們的計數區域中并不存在大于96的數值,因此countif函數公式的結果為0,于是再加上1,便得到了排名結果。
當條件為">F4",值為89,而$F$3:$F$40單元格區域中大于89的單元格有1個,即F3,最後再加上1,結果便得到排名2;依次計算下去,可以得到所有的排名。
通過countif函數的計數作用來排名,倒是一個靈活通變得方法。
公式三:中國式排名SUMPRODUCT函數
sumproduct函數,也叫乘積函數,更完整的叫法,應該是乘積求和函數,因為它的作用就是對單元格的乘積進行求和。
這個函數在excel中的應用很廣泛,尤其在之前的老版本中,官方還沒有更新一些強大的新函數,比如sumifs函數,如果沒有sumifs函數,那怎麼快速地多條件求和呢?大家首先的自然是sumproduct函數。
關于該函數的使用大全,我們可以用一篇文章來詳盡介紹,但今天先來求解排名的公式寫法。
我們輸入公式:=SUMPRODUCT(($F$3:$F$40>F3)*(1/COUNTIF($F$3:$F$40,$F$3:$F$40))) 1
這個公式中嵌套了一個countif函數,通過公式2的介紹,我們知道了countif函數的表達式和作用,那麼在這個公式中,它的條件為”$F$3:$F$40“,這是一個單元格區域。
以區域作為條件,則countif函數将從該區域中首個單元格開始,依次進行條件判斷,即首先判斷F3的值在計數區域中個數,在計算F4的值……一直到最後F40的值在計數區域中的個數,如果單元格的值在計數區域中有相同的,如F7的值77,在計數區域中還有兩個單元格的值相同,那麼countif函數公式的結果就是3.
這時作者在公式中”1/COUNTIF()“便表示1除以3,也就是1/3,而F8,F9的公式計算值也是1/3。
于是"1/COUNTIF()"的值再與"$F$3:$F$40>F3"相乘,$F$3:$F$40>F3是一個判斷表達式,返回的結果為1或者0,其實與公式2中countif函數的條件作用相似。
兩者相乘,再通過乘積求和函數sumproduct進行計算,它的執行結果如下圖所示:
也許從這個截圖中看不出它的含義所在,還需要多進行sumproduct函數的實操應用,多解析它公式各部分的結果值,來分解計算。
公式四:倒數排名RANK函數
第四個公式,又回到了作者講的第一個公式rank函數,其實隻要設置一下rank函數的第3參數排名方式,便可以達到倒數排名的效果。
如下圖所示公式:=RANK(F3,$F$3:$F$40,1)
rank函數的排名方式隻有兩種,一個是0值的升序排名,另一個則是非0值的降序排名,這裡我們設置參數為非零值1,執行降序排名,三科平均成績最高的學生排名反而是最後一名,成績最低的是第1名。
以上就是今天關于排名函數公式的介紹,這四個公式可以基本解決所有的排名需求,童鞋們可以私信作者獲取本文的習題素材,來練習幾個公式的應用。
最後請點贊支持作者,繼續關注,我們下期再見!
閱讀更多:
Excel表格如何批量标記每列中的最大值和最小值
Excel表格取消隐藏仍然不顯示隐藏的數據,該怎麼辦?
Excel表格怎麼計算員工出勤從開始到結束的間隔小時
,