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