Excel中如果能有這個函數(shù),中國式排名就很簡單了!
要根據(jù)學(xué)生的考試成績計算下排名,直接用Excel中內(nèi)置的函數(shù)RANK,結(jié)果如下:
"有兩位同學(xué)為并列第四,可之后就直接第六名了,第五名不見了,這并不符合我們的習(xí)慣,從小到大,每次考試后并列的名次很常見,可是不會缺少一個中間的名次。
怎么解決上述問題呢?
參加過我函數(shù)培訓(xùn)班的同學(xué)寫這個公式應(yīng)該不成問題:=SUMPRODUCT(($B$2:$B$20>=B2)/(COUNTIF($B$2:$B$20,$B$2:$B$20)))懂?dāng)?shù)組的基礎(chǔ),知道其中套路的話,這公式也不難理解。
如果你會VBA的話,寫個自定義函數(shù),以后就可以這樣了:
"或者復(fù)制下面的代碼,另存為加載宏,需要的時候加載下,不需要的時候取消加載,這也是極好的。
代碼如下:
‘rng1 代表需要排名的單元格,rng2代表排名區(qū)域Function crank(rng1 As Range, rng2 As Range) Dim arr, brr(), crr(), m&, i& arr = rng2 m = UBound(arr) ReDim brr(1 To m), crr(1 To m) For i = 1 To m brr(i) = Application.CountIf(rng2, arr(i, 1)) Next For i = 1 To m If rng1.Value <= arr(i, 1) Then crr(i) = 1 / brr(i) Else crr(i) = 0 End If Next crank = Application.Sum(crr)End Function