|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
首先要了解排名次的两种方法:
1 RANK函数排名次:
比如有四个数字 100,100,98,70 排名次后的结果是
第1名:100,100
第2名: 空
第3名:98
第4名:70
从上面排名可以看出,如果有并列排名的情况,有几个相同的,下面的名次就会空出几个位置。
2 中国式排名
同样有四个数字 100,100,98,70 排名次后的结果是
第1名: 100,100
第2名: 98
第3名:70
从上面结果可以看出,中国式排名不会因为有相同的数字排名就会让排名断开,而是连续的。
下面是刚才帮人做的一个函数,考虑不一定周全,基本上满足了简单的排名需求,与大家分享下吧
Function pm(ByVal nm, ByVal rng As Range)
Set d = CreateObject("scripting.dictionary")
For Each rn In rng
If VBA.IsNumeric(rn.Value) And Len(rn) > 0 Then
d(rn.Value) = ""
End If
Next rn
arr = d.keys
d.RemoveAll
For j = 0 To UBound(arr)
d(WorksheetFunction.Large(arr, j + 1)) = j + 1
Next j
If VBA.IsNumeric(nm) Then
pm = d(nm * 1)
Else
pm = ""
End If
End Function
|
评分
-
1
查看全部评分
-
|