|
yjh_27 发表于 2014-7-21 08:35
分段数据排序要求降序,名次分段是升序。
变通是把名次分段也按降序填入,改代码也是可以的,有时间吧。
等待修改后的代码。
以下是我使用变通的方法出现的一些情况说明:
1、转换所有的成绩为排名 ,使用公式 rank, 如果没有成绩的的就留空。2、分数段设置如下
5001 | 2002 | 1001 | 501 | 301 | 201 | 101 | 51 | 11 | 1 |
对应的结果是
5001以上 | 2002-5000名 | 1001-2001名 | 501-1000名 | 301-500名 | 201-300名 | 101-200名 | 51-100名 | 11-50名 | 1-10名 |
3、提示 下标越界 tjrr(2 + rbj, UBound(tjrr, 2)) = 0
之后修改 为 If tjrr(2 + rbj, UBound(tjrr, 2)) > 20 Then 可以计算
4、计算出来的结果均分全部为零。其他没有什么问题。
5、对分数段进行升序操作,在F1到O1列中填写数字1到10,使用 VBA代码
Sub 按【行】值_列排序()
[F1:it65536].Select
Selection.Sort Key1:=Range("F1"), _
Order1:=xlDescending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=2, _
SortMethod:=xlPinYin, _
DataOption1:=xlSortNormal
End Sub
6、当数据量大时,如接近3万行数据,这样的操作用时较长,尤其是第一步的Rank排位计算,计算机一度要死机的样子。
|
|