高建光
渤海船舶職業(yè)學院 ( 葫蘆島 125000 )
日常辦公處理過程中,經常需要對某些數(shù)據(jù)進行排名次,如學生的考試成績、比賽結果等。如果用手工的方法去排列,雖然也能夠排出來,但這只適合于人數(shù)較少的情況。如果人數(shù)較多或者按照某一標準,如按學生成績的總分或者某科成績等來排列名次,其工作量的大小,也就不言而喻了。本人根據(jù)自己的摸索與實踐,發(fā)現(xiàn)巧妙運用Excel中的RANK函數(shù)和IF函數(shù)等可方便地實現(xiàn)名次的排列。排名次分幾種情況,有不等次排名、等次排名、順次排名,下面以給學生成績排名次為例,分別介紹用幾種實現(xiàn)的方法。學生成績表如圖1:
圖1 學生成績表
不等次排名即不考慮并列情況的學生成績排名,名次按順序遞增。
(1)錄入完數(shù)據(jù)清單后,對學號和分數(shù)進行多個字段排序。方法是先選擇全部數(shù)據(jù)清單,在“數(shù)據(jù)”菜單中選擇“排序”命令,以“總分”為主要關鍵字,選擇“降序”按鈕,“學號”為第二關鍵字,選擇“升序”按鈕,排出了以從高到低的排序成績表,相同分數(shù)的記錄,學號小的在前。
(2)在名次列中從上到下輸入1--12,最簡單的方法是輸入1后按Ctrl鍵拖動填充柄填充序列到12, 則實現(xiàn)了以名次為順序顯示的成績表。
(3)如果需要以學號順序顯示,則再以“學號”為主要關鍵字排序,即恢復原來的學號排序即可。
等次排名是考慮了成績并列時的排名順延問題,也就是最后一個名次是所有要排名記錄的個數(shù)。
RANK(number,ref,order)函數(shù)將返回某個數(shù)字在一列數(shù)字中相對于其他數(shù)值的大小排位。其中number為需要找到排位的數(shù)字; ref為包含一組數(shù)字的數(shù)組或引用,ref 中的非數(shù)值型參數(shù)將被忽略;order指明排位的方式,如果 order 為0或省略,降序排列,如果 order 非零值,則升序排列。
圖2 RANK函數(shù)使用方法
如圖 2,在第一個人“名次”字段所在的E3單元格處輸入公式=RANK(D3,D$3:D$14,0),函數(shù)是將D3中的數(shù)值,在D3:D14數(shù)據(jù)區(qū)域中進行比較,進行降序排列,得出一個在數(shù)據(jù)區(qū)域的排位。然后拖動D3填充柄向下填充,將此公式復制到其他人的名次單元格中,即可得到每人在班中的名次。這里需要說明的是,將D3單元格公式復制到其他人的名次單元格時,公式發(fā)生了行的改變,而引用的“D3:D14”這個數(shù)據(jù)區(qū)域是一個不變的范圍,所以為了不讓公式復制后“D3:D14” 這個數(shù)據(jù)區(qū)域改變,所以 “D3:D14”必須是行的絕對引用,即在公式中數(shù)據(jù)區(qū)域是“D$3:D$14”形式。
如果需要按名次順序顯示成績單,則再以“名次”為主要關鍵字升序排序即可。
(1)按“總分”為主要關鍵字進行降序排序。
(2)在 “名次”字段所在的E3單元格輸入1,即此人排名第一。
(3)在數(shù)據(jù)清單中的第二人的名次單元格E4中輸入下面公式:
=IF(EXACT(D3,D4),E3,((ROW(D4)-ROW($D$3))+E$3))。
IF(logical_test,value_if_true,value_if_false)是一個邏輯函數(shù),執(zhí)行真假值判斷,判斷一個條件是否滿足,邏輯計算的值為真則返回value_if_true這個參數(shù)值,邏輯計算的值為假時,則返回value_if_false這個參數(shù)值。
EXACT(text1,text2)該函數(shù)測試兩個字符串是否完全相同。如果它們完全相同,則返回TRUE;否則,返回 FALSE。
ROW(reference)函數(shù)返回引用的行號。
這個單元格中的公式首先用 EXACT函數(shù)判斷D3和D4單元格的內容是否相同,如果分數(shù)相同,則名次等于 E3,如果分數(shù)不相同,則名次等于當前記錄所在的行號減去排序后第一個記錄的行號加上第一個記錄的名次,這里第一個人的行號要用絕對引用,這樣無論在第一人前插入了行還是減少了行或者將公式復制到其它單元格中都不會影響所求當前記錄的名次。
(4)將E4單元格中的公式用填充柄復制到其它記錄的名次單元格中,從而求出了每個人的名次。
順次排名是考慮了并列情況后名次順次遞增,即名次并列后按順序連續(xù)增加。
(1)按“總分”為主要關鍵字進行降序排序。
(2)在 “名次”字段所在的E3單元格輸入1,即此人排名第一
(3)在數(shù)據(jù)清單中的第二人的名次單元格E4中輸入下面公式:=IF(EXACT(D3,D4),E3,E3+1))。這個公式是首先用EXACT函數(shù)判斷D3和D4單元格的內容是否相同,如果分數(shù)相同則名次等于E3,如果分數(shù)不相同,則名次等于E3加上1。
(4)將E4單元格中的公式用填充柄復制到其它記錄的名次單元格中,從而求出了每個人的名次。
[1]約翰沃肯巴赫(美),邱燕明等譯,Excel 2003公式與函數(shù)應用寶典.北京:電子工業(yè)出版社,2004.
[2]Excel Home.Excel函數(shù)與公式實戰(zhàn)技巧精粹.北京:人民郵電出版社,2008.