排序是數據處理中的經常性工作,Excel排序有序數計算(類似成績統計中的名次)和數據重排兩類。本文以幾個車間的產值和名稱為例,介紹Excel 2000/XP的數據排序方法。
一、數值排序
1.RANK函數
RANK函數是Excel計算序數的主要工具,它的語法為:RANK (number,ref,order),其中number為參與計算的數字或含有數字的單元格,ref是對參與計算的數字單元格區域的絕對引用,order是用來說明排序方式的數字(如果order為零或省略,則以降序方式給出結果,反之按升序方式)。
例如E2、E3、E4單元格存放一季度的總產值,計算各車間產值排名的方法是:在F2單元格內輸入公式“=RANK(E2,$E$2: $E$4)”,敲回車即可計算出鑄造車間的產值排名是2。再將F2中的公式復制到剪貼板,選中F3、 F4單元格按Ctrl+V,就能計算出其余兩個車間的產值排名為3和1。如果B1單元格中輸入的公式為“=RANK(E2,$E$2:$E$4,1)”,則計算出的序數按升序方式排列,即2、1和3。
需要注意的是:相同數值用RANK函數計算得到的序數(名次)相同,但會導致后續數字的序數空缺。假如上例中F2單元格存放的數值與 F3相同,則按本法計算出的排名分別是3、3和1(降序時)。
2.COUNTIF函數
COUNTIF函數可以統計某一區域中符合條件的單元格數目,它的語法為COUNTIF(range,criteria)。其中range為參與統計的單元格區域,criteria是以數字、表達式或文本形式定義的條件。其中數字可以直接寫入,表達式和文本必須加引號。
仍以上述為例,F2單元格內輸入的公式為“=COUNTIF($E$2:$E$4, ">"&E2)+1”。計算各車間產值排名的方法同上,結果也完全相同,2、 1和3。
此公式的計算過程是這樣的:首先根據E2單元格內的數值,在連接符&的作用下產生一個邏輯表達式,即“>176.7”、“>167.3”等。 COUNTIF函數計算出引用區域內符合條件的單元格數量,該結果加一即可得到該數值的名次。很顯然,利用上述方法得到的是降序排列的名次,對重復數據計算得到的結果與RANK函數相同
3.IF函數
Excel自身帶有排序功能,可使數據以降序或升序方式重新排列。如果將它與IF函數結合,可以計算出沒有空缺的排名。上例中E2、E3、 E4單元格的產值排序為例,具體做法是:選中E2單元格,根據排序需要,單擊Excel工具欄中的“降序排序”或“升序排序”按鈕,即可使工作表中的所有數據按要求重新排列。
假如數據是按產值由大到小(降序)排列的,而您又想賦予每個車間從1到n(n為自然數)的排名。可以在G2單元格中輸入1,然后在G3單元格中輸入公式“=IF(E3=E2, G3,G3+1)”,只要將公式復制到G4等單元格,就可以計算出其他車間的產值排名。
二、文本排序
選舉等場合需要按姓氏筆劃為文本排序, Excel提供了比較好的解決辦法。如果您要將數據表按車間名稱的筆劃排序,可以使用以下方法: 選中排序關鍵字所在列(或行)的首個單元格(如A1),單擊Excel“數據”菜單下的“排序”命令,再單擊其中的“選項”按鈕。選中“排序選項”對話框“方法”下的“筆畫排序”,再根據數據排列方向選擇“按行排序”或“按列排序”,“確定”后回到“排序”對話框。如果您的數據帶有標題行(如“單位”之類),則應選中“有標題行”(反之不選),然后打開“主要關鍵字”下拉列表,選擇其中的“單位”,選中排序方式(“升序”或“降序”)后“確定”,表中的所有數據就會據此重新排列。
此法稍加變通即可用于“第一名”、“第二名”等文本排序,請讀者自行摸索。
三、自定義排序
如果您要求Excel按照“金工車間”、“鑄造車間”和“維修車間”的特定順序重排工作表數據,前面介紹的幾種方法就無能為力了。這類問題可以用定義排序規則的方法解決:首先單擊Excel“工具”菜單下的“選項”命令,打開“選項”對話框中的“自定義序列”選項卡。選中左邊“自定義序列”下的“新序列”,光標就會在右邊的“輸入序列”框內閃動,您就可以輸入“金工車間”、 “鑄造車間”等自定義序列了,輸入的每個序列之
間要用英文逗號分隔,或者每輸入一個序列就敲回車。如果序列已經存在于工作表中,可以選中序列所在的單元格區域單擊“導入”,這些序列就會被自動加入“輸入序列”框。無論采用以上哪種方法,單擊“添加”按鈕即可將序列放入“自定義序列”中備用。
使用排序規則排序的具體方法與筆劃排序很相似,只是您要打開“排序選項”對話框中的“自定義排序次序”下拉列表,選中前面定義的排序規則,其他選項保持不動。回到“排序”對話框后根據需要選擇“升序”或“降序”,“確定”后即可完成數據的自定義排序。
需要說明的是: 顯示在“自定義序列”選項卡中的序列(如一、二、三等),均可按以上方法參與排序,請讀者注意Excel提供的自定義序列類型