rank函式排序怎麼用(怎麼利用rank函式從大到小排名)

在 Excel 中,Rank函式用於實現一個數字在指定數字列表中的排位,並且可以通過拖動的辦法實現對整個數字列表的自動排序。Rank函式共有三個引數,前兩個為必選項,後一個為可選項;如果省略可選項,將預設按降序排序。Rank函式怎麼用呢?文章先介紹Rank函式的語法,再用四個由淺入深的具體例項分享Rank函式的使用方法;四個例項分別為無重複數字的自動排序、重複數字並排的自動排序、重複數字順排的自動排序和Rank函式與OffSet函式組合實現分段排序,例項操作所用版本均為 Excel 2016。

一、Rank函式語法

1、表示式:RANK(Number, Ref, [Order])

中文表示式:RANK(要排序的數字, 數字列表, [排序方式])

2、說明:

A、Ref 為數字列表陣列或對數字列表的引用,如果有非數字將被忽略。

B、Order 為可選項,用於指定數字的排序方式;如果省略,則預設值為 0,則按降序排序;如果為非 0,則按升序排序。

二、Rank函式怎麼用

(一)無重複數字的自動排序

1、假如要對銷量按降序排序。選中 G2 單元格,輸入公式 =RANK(F2,$F$2:$F$12),按回車,返回 F2 在 F2:F12 中的排位;再次選中 G2,把滑鼠移到 G2 右下角的單元格填充柄上,滑鼠變為黑色加號後,按住左鍵,往下拖一直拖到 F12,則所經過單元格都對應 F2:F12 中的數值排好序;操作過程步驟,如圖1所示:

2、公式說明:

A、公式 =RANK(F2,$F$2:$F$12) 中,F2 是要排序的數字,是對 F2 的相對引用,往下拖時,會變為 F3、F4、……;$F$2:$F$12 是對 F2 至 F12 的絕對引用,往下拖時,F2 和 F12 都不會自動加 1,即無論拖到哪個單元格都始終返回從 F2 到 F12 的數字列表。

B、公式省略了排序方式 Order,預設按降序排序,F2:F12 中的最大值 982 排序在第一位;如果要按升序排序,可以把 Order 設定為非 0,如設定為 1,則公式變為 =RANK(F2,$F$2:$F$12,1)。

(二)重複數字並排的自動排序

1、假如要對價格按升序排序。把公式 =RANK(E2,$E$2:$E$12,1) 複製到 G2 單元格,如圖2所示:

2、按回車,返回 E2 在 E2 至 E12 中的排位,同樣用往下拖的方法把其餘價格排序,排好後,如圖3所示:

3、排在第一的是 65,它是 E2 至 E12 中最小的值,說明排序方式為升序;E2 至 E12 中共有兩組重複數字,一組是 89,另一組是 99,兩個 89 都排在第 4 位,兩個 99 都排在第 6 位,而第 5 位和第 7 位卻留空。

(三)重複數字順排的自動排序

1、同樣對價格按升序排序。把公式 =RANK(E2,$E$2:$E$12,1) COUNTIF(E$2:E2,E2)-1 複製到 G2 單元格,按回車,則返回 E2 在 E2 至 E12 中的排位;用往下拖的方法把其餘價格排好序,操作過程步驟,如圖4所示:

2、價格中的第一組重複數字 89 分別排到了第 4 位和第 5 位;第二組重數字 99 分別排到了 第 6 位和第 7 位。

3、公式說明:

公式 =RANK(E2,$E$2:$E$12,1) COUNTIF(E$2:E2,E2)-1 用 CountIf函式統計當前數字在當前單元格之前有幾個重複值;例如 COUNTIF(E$2:E2,E2) 統計 E2 在 E2 之前(即 E2)有幾個重複數字,統計結果為 1,1 - 1 = 0,即 COUNTIF(E$2:E2,E2)-1 = 0;當拖到 E3 時,COUNTIF(E$2:E2,E2)-1 變為 COUNTIF(E$2:E3,E3)-1,統計 E3 在 E2 至 E3 有幾個重複數字,統計結果為 1,COUNTIF(E$2:E3,E3)-1 = 0,則 =RANK(E3,$E$2:$E$12,1) 0=4;當拖到 E4 時,COUNTIF(E$2:E2,E2)-1 變為 COUNTIF(E$2:E4,E4)-1,統計 E4 在 E2 至 E4 有幾個重複數字,統計結果為 2,COUNTIF(E$2:E4,E4)-1 = 1,則 =RANK(E4,$E$2:$E$12,1) 1=5。

(四)Rank函式與OffSet函式組合實現分段排序

1、假如要把銷量按每段四個數分段排序。把公式 =RANK(F2,OFFSET($F$2:$F$5,INT((ROW()-2)/4)*4,),1) 複製到 G2 單元格,按回車,則返回 F2 在 F2 至 F5 中的排位;用往下拖的方法排好其餘數字與其它分段的序;操作過程步驟,如圖5所示:

2、公式說明:

A、公式 =RANK(F2,OFFSET($F$2:$F$5,INT((ROW()-2)/4)*4,),1) 用 OFFSET($F$2:$F$5,INT((ROW()-2)/4)*4,) 來實現分段,它是如何實現分段的?我們選擇第二個分段的第一個單元格,即 G6 單元格,雙擊它,它的公式為 =RANK(F6,OFFSET($F$2:$F$5,INT((ROW()-2)/4)*4,),1),如圖6所示:

B、其它的都沒有變,只有 F2 變為 F6;Row() 用於返回當前行的行號,F6 的行號為 6,即 ROW()-2 = 4,INT(4/4) = 1,1*4 = 4,即 OffSet 變為 OFFSET($F$2:$F$5,4),也就是要往下移 4 行,由於 OffSet函式返回對單元格的引用,所以 OffSet 返回 $F$6:$F$9。

C、Rank 變為 =RANK(F6,$F$6:$F$9,1),也就實現了對第二段 F6 至 F9 數字列表的排序。

提示:由於是從 F2 開始,所以用 ROW()-2,如果從 F1 開始,則用 ROW()-1,其它的以此類推。另外,每個分段有幾個數,用 (ROW()-2) 除幾,如公式中的 (ROW()-2)/4;用 Int 取整後再乘幾也是一樣。