excel提取技巧:如何不排序提取排名數(shù)據(jù)

編按:這是高手的交流區(qū),小白免進!本期題目是不提前排序,直接采用函數(shù)提取成績前三的學生姓名。難點在于怎么排除同分數(shù)的干擾。

統(tǒng)計前三名學生姓名是很多老師每次考試后必須要做的工作。統(tǒng)計成績時最麻煩的就是碰到相同分數(shù)的,如果同樣是100分到底算誰第一名呢?這不今天我們的學員LXP老師就遇到這樣問題了,她希望返回班級所有學生中前三名學生名稱,如果遇到相同的分數(shù)按照先后排列順序返回。

如下表:A列是學生姓名,B列是學生成績信息,現(xiàn)在需要在F列返回前三名的學生姓名。

如果沒有相同分數(shù),可以通過以下函數(shù)公式完成學生姓名提?。?/p>
=INDEX($A$2:$A$68,MATCH(LARGE($B$2:$B$68,ROW(A1)),$B$2:$B$68,0))
但正如下圖所展示的那樣,但存在相同分數(shù)的時候,這個公式就不管用了,出現(xiàn)了重名:

按照LXP老師的要求相同分數(shù)按排列順序先后記名次,我有兩種解決方法:
方法一:
函數(shù)公式:
=INDEX($A$2:$A$67,MATCH(LARGE($B$2:$B$67,ROW(A1)),INDEX(((COUNTIFS($F$1:F1,$A$2:$A$67)>0)*-100+1)*($B$2:$B$67),),0),0)

函數(shù)思路:
INDEX(((COUNTIFS($F$1:F1,$A$2:$A$67)>0)*-100+1)*($B$2:$B$67),)這部分函數(shù)用于將B2:B67區(qū)域中的分數(shù)進行重新構(gòu)建。譬如,成績99的第一名學生姓名返回后,他的分數(shù)就會被乘以-99,就不會再以99分的分數(shù)去爭搶第二名。
方法二:
首先我們先通過函數(shù)公式=LARGE($B$2:$B$68,ROW(A1))統(tǒng)計前三名分數(shù)。
然后通過以下函數(shù)公式完成前三名學生姓名查詢:
=OFFSET(A$1,SMALL(IF($B$2:$B$68=F2,ROW($1:$67)),COUNTIF($F$2:F2,F2)),)(數(shù)組公式,按ctrl+shift+enter三鍵完成)

函數(shù)思路:
用IF函數(shù)把所有等于某個分數(shù)的行號找出,然后通過COUNTIF($F$2:F2,F2)統(tǒng)計F2:F4中該分數(shù)出現(xiàn)的次數(shù),并由此確定small函數(shù)返回第幾小的行號,這樣就避免了分數(shù)相同,姓名相同。
不知對于這樣不排序提取前三名姓名的需求,你還有哪些做法?歡迎留言分享。
****部落窩教育-excel函數(shù)技巧****
原創(chuàng):龔春光/部落窩教育(未經(jīng)同意,請勿轉(zhuǎn)載)
更多教程:部落窩教育(www.itblw.com)
微信公眾號:exceljiaocheng