Foxtable(狐表)用户栏目专家坐堂 → [求助]如何实现年级排名与班级排名公式


  共有4242人关注过本帖树形打印复制链接

主题:[求助]如何实现年级排名与班级排名公式

帅哥,在线噢!
hbfnmxb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6330 威望:0 精华:0 注册:2008/9/7 20:15:00
[求助]如何实现年级排名与班级排名公式  发帖心情 Post By:2019/11/27 17:34:00 [只看该作者]

学生成绩汇总表中有某某学科班级排名和某某学科年级,如:语文年级排名、语文班级排名、数学年级排名、数学班级排名等,下面这段:Tables("学生成绩汇总表").StopRedraw
Dim bjs As List(Of String) = DataTables("学生成绩汇总表").GetValues("班级","[班级] Is Not NULL")
Dim Count As Integer
Dim ColNames() As String = {"语文","数学","英语","化学","物理","总分"} 
Dim TotalName As String 
For Each ColName As String In ColNames '
    For i As Integer = 0 To bjs.Count -1 
        Dim drs As List(Of DataRow) = DataTables("学生成绩汇总表").Select("[班级] = " & bjs(i), ColName & " DESC")
        Count = 0
        TotalName = ColName & "排名"
        For n As Integer = 0 To drs.Count - 1
            Count = Count + 1
            If n > 0 AndAlso drs(n)(ColName ) = drs(n-1)(ColName) Then
                drs(n)(TotalName ) = drs(n-1)(TotalName ) 
            Else
                drs(n)(TotalName ) = Count
            End If
        Next
    Next 
Next
Tables("学生成绩汇总表").Sort = "总分 DESC"
Tables("学生成绩汇总表").ResumeRedraw
如何实现学科的年级排名和学科的班级排名。谢谢老师!!
[此贴子已经被作者于2019/11/27 18:22:51编辑过]

 回到顶部
帅哥,在线噢!
hbfnmxb
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6330 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2019/11/27 18:50:00 [只看该作者]

自己顶一下


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/27 20:33:00 [只看该作者]

添加对应的语文年级排名、语文班级排名等等列,然后代码条件改为年级不就行了

Tables("学生成绩汇总表").StopRedraw
Dim bjs As List(Of String) = DataTables("学生成绩汇总表").GetValues("年级","[年级] Is Not NULL")
Dim Count As Integer
Dim ColNames() As String = {"语文","数学","英语","化学","物理","总分"} 
Dim TotalName As String 
For Each ColName As String In ColNames '
    For i As Integer = 0 To bjs.Count -1 
        Dim drs As List(Of DataRow) = DataTables("学生成绩汇总表").Select("[年级] = " & bjs(i), ColName & " DESC")
        Count = 0
        TotalName = ColName & "年级排名"
        For n As Integer = 0 To drs.Count - 1
            Count = Count + 1
            If n > 0 AndAlso drs(n)(ColName ) = drs(n-1)(ColName) Then
                drs(n)(TotalName ) = drs(n-1)(TotalName ) 
            Else
                drs(n)(TotalName ) = Count
            End If
        Next
    Next 
Next
Tables("学生成绩汇总表").Sort = "总分 DESC"
Tables("学生成绩汇总表").ResumeRedraw

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/27 20:34:00 [只看该作者]

如果要班级年级同时排名,先调用1楼的代码,再调用3楼的代码即可

 回到顶部
帅哥,在线噢!
hbfnmxb
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6330 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2019/11/28 7:46:00 [只看该作者]

老师,您给看一下这个附件:总是出现问题,按您说得,没有找到问题的原因。不知道问题出在哪里?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:公式求助.rar


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 9:24:00 [只看该作者]

Tables("学生成绩汇总表").StopRedraw
Dim bjs As List(Of String) = DataTables("学生成绩汇总表").GetValues("年级","[年级] Is Not NULL")
Dim Count As Integer
Dim ColNames() As String = {"语文","数学","英语","化学","物理","政治","历史","地理","生物","总分"} 
Dim TotalName As String 
For Each ColName As String In ColNames '
    For i As Integer = 0 To bjs.Count -1 
        Dim drs As List(Of DataRow) = DataTables("学生成绩汇总表").Select("[年级] = '" & bjs(i) & "'", ColName & " DESC")
        Count = 0
        TotalName = ColName & "年级排名"
        For n As Integer = 0 To drs.Count - 1
            Count = Count + 1
            If n > 0 AndAlso drs(n)(ColName ) = drs(n-1)(ColName) Then
                drs(n)(TotalName ) = drs(n-1)(TotalName ) 
            Else
                drs(n)(TotalName ) = Count
            End If
        Next
    Next 
Next
Tables("学生成绩汇总表").Sort = "总分 DESC"
Tables("学生成绩汇总表").ResumeRedraw

 回到顶部
帅哥,在线噢!
hbfnmxb
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6330 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2019/11/28 9:36:00 [只看该作者]

老师讲下,这里,想弄明白怎么回事!!谢谢老师!
Dim drs As List(Of DataRow) = DataTables("学生成绩汇总表").Select("[年级] = '" & bjs(i) & "'", ColName & " DESC")

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 9:42:00 [只看该作者]

表达式的字符串需要使用单引号引起来:http://www.foxtable.com/webhelp/topics/1284.htm

 回到顶部
帅哥,在线噢!
hbfnmxb
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6330 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2019/11/28 9:55:00 [只看该作者]

谢谢老师!还有一个问题:学生成绩汇总表中的学科主观成绩,如语文主观、数学主观等,还有学科客观成绩 ,如语文客观、数学客观等,想引用主观题表中的成绩和客观题表中的成绩,主观题表中的成绩按学号,如何引用到学生成绩汇总表中,客观题的成绩如何按学号引用到学生成绩汇总表!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/28 10:18:00 [只看该作者]


 回到顶部
总数 19 1 2 下一页