在使用Excel計算各種成績時,總會遇到排名次的問題。一般我們都會用“數(shù)據(jù)”菜單中的“排序”命令來排,再利用“以序列方式填充”的辦法復(fù)制每一個單元格,來填上名次。這種辦法操作起來比較麻煩,并且并列名次也得需要手動修正。有沒有簡便一些的排名次的辦法呢?當然有了,實際上利用公式就可以輕松排定名次了!
這里介紹兩種方法:
(圖1)
一是利用RANK函數(shù)排名次
排名次函數(shù)RANK?。▁1,x2,x3),返回單元格x1在一個垂直區(qū)域x2中的排位名次,x3是排位的方式,x3為0或省略,則按降序排名次,x3不為0則按升序排名次。并且,RANK對相同數(shù)的排位相同,但相同數(shù)的存在將影響后續(xù)數(shù)值的排位(即有并列名次,后面的名次順延)。例如對圖1中的成績排名次,則可在E2單元格中輸入公式“=RANK(D2,D$2:D$27)”即可(“”不輸入;D$2:D$27表示單元格區(qū)域,為了適應(yīng)有可能出現(xiàn)的學(xué)生的增減情況,可將單元格區(qū)域范圍放大,例如取D$2:D$100。下同),并將自動填充柄(將鼠標移到E2單元格的右下角,這時會出現(xiàn)一個黑十字,這就是自動填充柄)向下拖至E27單元格。這時每一個學(xué)生的名次就都自動填充在了相應(yīng)的單元格中了。
二是利用數(shù)組函數(shù)SUMPRODUCT來排名次。
上面這種利用RANK函數(shù)排名次的方法,雖然簡便,但有著較大有局限性。例如上例中,這些學(xué)生分屬不同的年級與班級,并且在排列上也沒有規(guī)律,如果要排出班級名次與年級名次,因為參與排序的數(shù)值不在一個連續(xù)的單元格區(qū)域中,RANK函數(shù)就無能為力了。這時該怎么辦呢?巧妙地利用數(shù)組函數(shù)SUMPRODUCT就可以解決這一問題。
SUMPRODUCT函數(shù)本身不是一個排序函數(shù),而是一個求和函數(shù),表示在給定的幾組數(shù)組中將數(shù)組間對應(yīng)的元素相乘,并返回乘積之和。其函數(shù)語法為:
SUMPRODUCT(array1,array2,array3, ...)
array1, array2, array3,…… 為2到30個數(shù)組,其相應(yīng)元素需要進行相乘并求和。
雖然SUMPRODUCT不是一個排序函數(shù),但只要巧妙地設(shè)置條件,就可以利用它來實現(xiàn)排序有功能。
例如,上面的例子中要求學(xué)生在本年級中的名次,就可在G2單元格中輸入“=SUMPRODUCT((A$2:A$27=A2)*(D$2:D$27>D2))+1,并自動填充到G27單元格即可。
這里函數(shù)算法是這樣的:
(為了便于理解,將公式做一個小改動,道理是一樣的)
G2=SUMPRODUCT((A$2:A$4=A2)*(D$2:D$4>D2))+1
函數(shù)首先判斷第一個條件中符合要求的數(shù)值,符合為真,表示為TRUE;不符合為假,表示為FALSE。在A2:A4中全部為真,即表示為(TRUE, TRUE, TRUE)。
其次判斷第二個條件中符合要求的數(shù)值,符合為真,表示為TRUE;不符合為假,表示為FALSE。在D2:D4中,第一個假,后兩個為真,即表示為(FALSE, TRUE, TRUE)。
這時候公式變?yōu)?:
G2=SUMPRODUCT((TRUE, TRUE, TRUE)*(TRUE,F(xiàn)ALSE,F(xiàn)ALSE))+1 。
因為這是邏輯值,在Excel的計算過程中自動將它們轉(zhuǎn)化為數(shù)值進行計算, TRUE和FALSE分別代表1和0。所以公式變?yōu)椋?br>G2=SUMPRODUCT((1,1,1)*(0,1,1))+1
然后接下來就是SUMPRODUCT的計算過程了
G2=(1*0+1*1+1*1)+1=2+1=3
所以最后的結(jié)果等于3。表示這個學(xué)生的在我們計算的這三個學(xué)生中年級名次是第3名。要想計算這個學(xué)生在所有的26名學(xué)生中的年級名次,只需將公式中兩個條件的范圍改動一下就可以了。
要想求出學(xué)生的班級名次,只需在求年級名次的公式基礎(chǔ)上再加上一個限定班級的條件就可以了。在F2單元格中輸入“=SUMPRODUCT((A$2:A$27=A2)*(B$2:B$27=B2)*(D$2:D$27>D2))+1” ,并自動填充到F27單元格即可。
三 總結(jié)語
利用RANK和SUMPRODUCT這兩個函數(shù)就可以輕松搞定復(fù)雜的名次排列的問題。在Excel中,有大量的函數(shù)供我們使用,只要我們多去嘗試,總會有辦法來實現(xiàn)自己的想法的!