大家好,我是小魚。
什么是中國式排名呢?
舉個例子比如說公司一共有10名員工進行成績考核,如果9個人考核成績都是90分,你是89分,按照國際慣用的排名法則:9 個人考核成績并列第一,你第10名;但是,如果按中國式排名:9 個人考核成績并列第一,你第2名。所以中國式排名就不能直接RANK函數,RANK函數只適用于美式排名,不適用于中國式排名。
如下圖所示,這是一年級學生成績,我們需要對學生成績進行中國式排名,我們可以看到趙金龍、孫二娘都是98分,并列第2名,后面的張飛92是第3名。
中國式排名方法一、使用IF函數
方法:
1、開始中國式排名前,首先要對C列“成績”數據進行降序排列,按成績從高往低排列,如下圖所示
2、然后在D2單元格中輸入數字1,代表第一行數據成績排名是1
3、然后在D3單元格中輸入公式:=IF(C3=C2,D2,D2+1)
然后點擊回車,下拉填充數據即可
解讀:
上面的公式表示如果上下兩行成績相同,則排名相同,返回上一行成績的排名;否則,排名就+1遞增。
中國式排名方法二、使用SUMPRODUCT+COUNTIF函數組合
方法:
在目標單元格中輸入公式:
=SUMPRODUCT((C$2:C$14>C2)*(1/COUNTIF(C$2:C$14,C$2:C$14)))+1
然后點擊回車,下拉填充數據即可
解讀:
該組合函數公式就相當于計算C$2:C$14單元格區域中大于等于C2單元格中數值的不重復個數,下面我們分步解讀該組合函數公式的具體含義。
①組合公式中(C$2:C$14>C2)意思就是分別比較C2:C14單元格區域中每個單元格中數值與C2單元格中數值的大小。選中公式按下F9鍵可查看內存數組返回的結果是一個由TRUE和FALSE組成的邏輯數組:
{FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}
因為TRUE相當于1,FALSE相當于0,也就相當于一組1和0組成的數組,也可以把返回的結果理解為:
{0;0;1;0;0;0;0;0;0;0;0;0;0}
②COUNTIF(C$2:C$14,C$2:C$14),用于分別統計C2:C14單元格中每個元素出現的次數,然后按F9鍵,我們可以看到獲得是一個數組{1;2;2;1;1;1;1;1;2;2;1;1;1},這個數組公式就是統計成績出現的次數。
③1/COUNTIF(C$2:C$14,C$2:C$14) 實際獲得的數組是{1;0.5;0.5;1;1;1;1;1;0.5;0.5;1;1;1}
也就是說如果成績出現1次,那我們就計數為1;
如果成績出現2次,那我們就計數為1/+1/2=1;
如果成績出現3次,那我們就計數為1/3+1/3+1/3=1,這樣依此類推,也就是不管重復幾次,最后結果都只統計1次
④最后用SUMPRODUCT函數對數組元素進行求和,最后加1,就是比自己大的個數 +1,即自己的排名
大家可能覺得這個公式邏輯比較復雜不容易理解,大家可以直接套用,把里面的參數替換成自己的,需要主要是成績區域C$2:C$14是鎖行不鎖列,就是選擇成績區域后按2次F4建即可。
中國式排名方法三、使用數據透視表
方法:
1、點擊數據表格中任意單元格→然后單擊【插入】-【數據透視表】→在彈出的【創建數據透視表】對話框中“請選擇單元格區域”不用動,“放置數據透視表的位置”選中【現有工作表】并且選擇放置的單元格→最后點擊確定即可,如下圖所示
2、在右側的數據透視表中把【字段列表】中要分類匯總字段“姓名”拖到【數據透視表區域】的【行】位置,把“成績”字段兩次拖到【值】位置,如下圖所示
3、點擊透視表中的【求和項:成績2】表頭,然后在編輯欄修改成【排序】→接右鍵單擊數據透視表值區域的任意單元格,選擇【值顯示方式】-【降序】→在彈出的“值顯示方式”對話框中選擇默認的“姓名”即可。
希望這篇文章能對你有所幫助。點贊收藏不迷路呦!