close

891

給您三絕招,幫您搞定RANK函數都無法搞定的中國式排名

示範檔

範例檔

891.XLSX

結果檔

891F.XLSX

在一般情況下,直接使用RANK函數進行排名屬於美式排名,例如:在H2儲存格輸入公式「=RANK(G2,$G$2:$G$16)」後,將公式複製到H3:H16儲存格,如下圖所示,「高美雪」及「郭守歲」兩個並列第5名後,沒有第6名。

而在中國的排名習慣中,無論有幾個第3名,之後的排名仍是第4名,即並列的排名不佔用名次。再進一步分析,中國式排名,重複數排名相同,比它小的最大數的排名只低1名。所以,我們通常使用COUNTIFSUMPRODUCTFREQUENCY等函數結合來完成中國式排名。

絕招1SUMPRODUCTCOUNTIF組合

I2儲存格輸入公式「=SUMPRODUCT(($G$2:$G$16>=G2)/(COUNTIF($G$2:$G$16,$G$2: $G$16)))」後,將公式複製到I3:I16儲存格,如下圖所示。

$G$2:$G$16>=G2計算結果為{TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE; TRUE;TRUE;TRUE;TRUE;TRUE;TRUE},意思就是找到大於等於G2的分數,傳回邏輯值。如果大於等於就是TRUE=1,小於等於就是FALSE=0

COUNTIF($G$2:$G$16,$G$2:$G$16)計算結果為{1;2;1;1;1;2;2;2;2;1;1;2;2;2;1},說明總分266分有1個,313分有2個,402分有1個,323分有1個,429分有1個,就是求出G2:G16中的每個資料在G2:G16全部資料中有幾個相同的。

($G$2:$G$10>=G2)/(COUNTIF($G$2:$G$10,$G$2:$G$10))計算結果為:{1;0.5;1;1;1;0.5;0.5;0.5;0.5;1;1;0.5;0.5;0.5;1},這樣兩個0.5加起來就是1,就做到相同分數只計算一次排名。

再用SUMPRODUCT乘積求和,完成中國式排名的計算。

SUMPRODUCT函數與COUNTIF函數組合公式還有另外一種變形公式「=SUMPRODUCT ( ( $G$2:$G$10>G2)*(1/(COUNTIF($G$2:$G$10,$G$2:$G$10))))+1」,原理是相同的。

絕招2FREQUENCY 函數的陣列用法

I2儲存格輸入公式「=COUNT(1/(FREQUENCY (G$2:G$10,IF(G$2:G$10>=G2, G$2:G$10))>0))」後,按Shift+Ctrl+Enter鍵完成陣列公式輸入後,將公式複製到I3:I16儲存格,如下圖所示。

其中,IF(G$2:G$16>=G2,G$2:G$16)用來判斷當前總分是否大於等於G2,如果是則輸出結果為總分,如果不是,則返回值FALSE

Frequency()是一個次數函數,統計各區間的次數,它有兩個參數,用逗號分開。第一個參數要進行統計的資料,即學生總成績,第二個參數分組的依據,也就是分段的界值。

利用Frequency函數第二參數忽略邏輯值的特點,將大於等於G2儲存格的值做為分段點。再用COUNT函數統計非0值的個數,即得到學生成績中國式排名。

因為Frequency()傳回的是一列數值,要用陣列公式的形式輸入,因此,在編輯欄輸入完公式後需按下複合鍵Ctrl+Shift+Enter,使之成為陣列公式從而完成計算。

絕招3:直接排序比較法(簡單粗暴)

G列儲存格的總分由最大到最小(高到低排序),第一個總分排名第1,當下一個總分等於上一個儲存格總分時,則排名相等,下一個總分不等於上一個總分時,則排名加1

在儲存格I2輸入1,在I3儲存格輸入公式「=IF(G3=G2,I2,I2+1)」後,將公式複製到I4:I16儲存格,如下圖所示。

當然我們還有MATCH函數與ROW函數比較法:

在儲存格I2輸入公式=SUM(--IF($G$2:$G$10>=G2,MATCH($G$2:$G$10,$G$2:$G$10,)=ROW ( $2:$10)-1))」,按Shift+Ctrl+Enter鍵完成輸入後,將公式複製到I3:I16儲存格。

總之,中國式排名的方法有很多種,使用公式會稍微複雜一些,但是不需要對資料進行處理,可直接使用。而先排序再排名則簡單粗暴,非常適合小白們使用。

今天的教程就到這裡啦。有收穫的自動按讚、轉發囉!哈哈。


arrow
arrow
    創作者介紹

    錦子老師 發表在 痞客邦 留言(0) 人氣()