| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5389 人关注过本帖
标题:按班级排名次问题
只看楼主 加入收藏
andy292
Rank: 2
等 级:论坛游民
威 望:1
帖 子:86
专家分:13
注 册:2005-2-26
结帖率:71.43%
收藏
已结贴  问题点数:20 回复次数:25 
按班级排名次问题
请问按班级排名次怎么排呢
12.16.rar (10.64 KB)


[此贴子已经被作者于2016-12-9 09:17编辑过]

2016-12-09 09:06
andy292
Rank: 2
等 级:论坛游民
威 望:1
帖 子:86
专家分:13
注 册:2005-2-26
收藏
得分:0 
以前大神的排名程序有
fun_wk("总分","班级排名")

function fun_wk(科目,排名)
  SET ORDER TO (科目)
    T=0
    MC=1  &&名次
    YH=1  &&序号
 SCAN
  IF evaluate(科目) !=T
    T=EVALUATE(科目)
    MC=YH
  ENDIF
  REPLACE (排名) WITH MC
  YH=YH+1

END SCAN



ENDFUNC
2016-12-09 09:11
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9802
专家分:26906
注 册:2012-2-5
收藏
得分:5 
排名次的规则是什么
分数相同是不是名次相同

[此贴子已经被作者于2016-12-9 09:17编辑过]


坚守VFP最后的阵地
2016-12-09 09:15
andy292
Rank: 2
等 级:论坛游民
威 望:1
帖 子:86
专家分:13
注 册:2005-2-26
收藏
得分:0 
按总分排序,以班级分组,从1开始,同分同名次
2016-12-09 09:16
andy292
Rank: 2
等 级:论坛游民
威 望:1
帖 子:86
专家分:13
注 册:2005-2-26
收藏
得分:0 
Sub 按钮1_Click()
'先按班级排序(ASC),再按总分排序(DESC)
m = [a65536].End(xlUp).Row
a = Range("a1:f" & m)

        t = 1     '名次的值
        For i = 2 To m
       If Cells(i - 1, 5) <> Cells(i, 5) Then    '假如不同分,排名增加1
        Cells(i, 6) = t
        Else
         Cells(i, 6) = Cells(i - 1, 6)  '同分为上一次的
       End If
          t = t + 1      ‘值增加1
         
        
          If Cells(i, 1) <> Cells(i + 1, 1) Then      ’如果班级列 发生改变,即分班了
            t = 1
          End If
        Next
      
   

End Sub
这是我写的VBA代码,在EXCEL中用的
2016-12-09 09:52
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:0 
以下是引用andy292在2016-12-9 09:52:02的发言:

Sub 按钮1_Click()
'先按班级排序(ASC),再按总分排序(DESC)
m = [a65536].End(xlUp).Row
a = Range("a1:f" & m)

        t = 1     '名次的值
        For i = 2 To m
       If Cells(i - 1, 5) <> Cells(i, 5) Then    '假如不同分,排名增加1
        Cells(i, 6) = t
        Else
         Cells(i, 6) = Cells(i - 1, 6)  '同分为上一次的
       End If
          t = t + 1      ‘值增加1
         
        
          If Cells(i, 1) <> Cells(i + 1, 1) Then      ’如果班级列 发生改变,即分班了
            t = 1
          End If
        Next
      
   

End Sub
这是我写的VBA代码,在EXCEL中用的


EXCEL的VBA中不需要自己写排序的代码,只要将RANK()函数公式写到单元格中就解决了

只求每天有一丁点儿的进步就可以了
2016-12-09 10:49
andy292
Rank: 2
等 级:论坛游民
威 望:1
帖 子:86
专家分:13
注 册:2005-2-26
收藏
得分:0 
回复楼上:
RANK可以按班分组吗?,一个一个选区域,那得多费事,100多个班呢
2016-12-09 10:52
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2197
专家分:3838
注 册:2007-4-27
收藏
得分:0 
公式也可用VBA自动写入的

只求每天有一丁点儿的进步就可以了
2016-12-09 11:00
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:15 
程序代码:
upda tblclass_1 set 班级排名=0
clos tabl
USE tblclass_1
INDEX on 班名称+STR(1000-总分) TO bjzf 
GO TOP
  DO whil NOT EOF()
    nbj=班名称
    i=1
    j=1
    DO whil NOT EOF() AND 班名称=nbj  
     nzf=总分
     REPLACE 班级排名 WITH i
     j=0                          
   DO whil NOT EOF() AND 班名称=nbj AND 总分=nzf      
     REPLACE 班级排名 WITH i
     j=j+1  
    SKIP 
    ENDDO
    i=i+j                         
   ENDDO
  ENDDO  

图片附件: 游客没有浏览图片的权限,请 登录注册
2016-12-09 11:23
andy292
Rank: 2
等 级:论坛游民
威 望:1
帖 子:86
专家分:13
注 册:2005-2-26
收藏
得分:0 
真快啊,VF大坛能人多
2016-12-09 11:34
快速回复:按班级排名次问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017206 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved