在用Excel統計成績時,我們一般會根據成績高低進行排序,然後按序列自動填充出名次。這種方法得出的名次與總分沒有關聯,即使成績相同,也會填充出不同的名次。
如果數據較少,我們可以采用手動的方法將成績相同的人員改成相同的名次,但數據較多時就很麻煩了。經過實踐,以下三種方法可以自動實現同分同名次的操作。假設有1000名考生,字段位置如上圖所示。
一、使用排位函數RANK
在H2單元格中輸入函數“=RANK(G2,G$2:G$1001,0)”,回車後H2單元格中會出現名次“1”,然後選定H2,拖動其填充柄向下填充即可自動實現。
該函數的功能是返回一個數字(上述函數中的G2,此處采用相對應用,填充時隨行的變化而變化)在數字列表(上述函數中的G$2:G$1001,此處采用絕對應用,填充時不發生變化)中的排位。數字的排位是其大小與列表中其他值的比值。該函數在使用時,即使總分沒有排序,它也可以直接求出所對應總分的名次;如果總分已排過序,則數字的排位就是它當前的位置。提醒大家上述函數中最後的“0”指明排位的方式,當其為 0或省略時,Excel 對數字的排位是按照降序排列的。 如果不為零, Excel 對數字的排位則是按照升序排列的。該函數對重復數的排位相同,而下一名次則將前面的重復數計算在內。
二、使用計數函數COUNTIF
在H2單元格中輸入函數“=COUNTIF(G$2:G$1001,">"&G2)+1”,然後向下自動填充即可實現該操作。
該函數的功能是計算區域中滿足給定條件的單元格個數。上述函數中采用絕對引用指定計算區域G$2:G$1001,名次所對應的單元格G2采用相對引用。即求出在G2:G1001區域中大於名次所對應總分的單元格的個數,然後加上1就可以得出該單元格中數值的名次。該操作不管有幾個重復的,大於它的個數卻是固定的,所以重復數據的名次也就是相同的了。同RANK函數一樣,該函數不管是否已經按總分進行排序均可進行上述操作。
三、采用IF語句加COUNT函數
該操作與上述兩種方法不同,必須先將總分按照降序排列。然後將第一名的名次“1”輸入,再在H3單元格中輸入函數“=IF(G3=G2,H2,COUNT($G$2:G3))”,確定後向下自動填充也可實現同分同名次的操作。
COUNT函數的功能是返回指定區域中數字單元格的個數。因為G列全是數字單元格,所以該總分處在第幾位上名次就是幾。上述語句的意思就是如果當前總分和上一個總分相同,則輸入上一個總分的名次,否則執行COUNT語句,統計個數。