介紹如何在 Excel 中使用 SMALL
、LARGE
與 RANK
等函數,依據成績分數篩選出排名前三名或倒數前三名的學生。
假設我們現在有一份 Excel 表格,其中含有學生的原始成績資料,內容如下:
若希望根據成績計算出全班的前三名,可以使用 IF
與 LARGE
函數來判斷每個成績是否為前三名,若為前三名則顯示名次:
=IF(B2=LARGE($B$2:$B$16,1),1,IF(B2=LARGE($B$2:$B$16,2),2,IF(B2=LARGE($B$2:$B$16,3),3,"")))
這裡的三個 IF
巢狀判斷結構,也可以用 IFS
多重判斷函數來替代,也就是改寫成這樣,效果相同:
=IFS(B2=LARGE($B$2:$B$16,1),1,B2=LARGE($B$2:$B$16,2),2,B2=LARGE($B$2:$B$16,3),3,TRUE,"")
除了使用 IF
與 LARGE
函數來判斷前三名之外,也可以改用 IF
搭配 RANK
函數,透過 RANK
計算名次,然後用 IF
判斷名次,只顯示前三名:
=IF(RANK(B2,$B$2:$B$16)<=3,RANK(B2,$B$2:$B$16),"")
若要標示倒數前三名,就把原本的 LARGE
函數改為 SMALL
函數即可:
=IF(B2=SMALL($B$2:$B$16,1),1,IF(B2=SMALL($B$2:$B$16,2),2,IF(B2=SMALL($B$2:$B$16,3),3,"")))
這是用 IFS
函數來計算倒數前三名的版本:
=IFS(B2=SMALL($B$2:$B$16,1),1,B2=SMALL($B$2:$B$16,2),2,B2=SMALL($B$2:$B$16,3),3,TRUE,"")
若要以 IF
搭配 RANK
函數來計算倒數前三名,可以將 RANK
函數的第三個參數指定為一個不是 0
的數值,這樣就會以遞增的方式排序分數:
=IF(RANK(B2,$B$2:$B$16,1)<=3,RANK(B2,$B$2:$B$16,1),"")