Foxtable(狐表)用户栏目专家坐堂 → 计算同一行数据的最高分、最低分和平均值,计算名次


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

主题:计算同一行数据的最高分、最低分和平均值,计算名次

帅哥哟,离线,有人找我吗?
wu725
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:77 积分:996 威望:0 精华:0 注册:2012/2/6 16:33:00
计算同一行数据的最高分、最低分和平均值,计算名次  发帖心情 Post By:2017/4/21 10:44:00 [只看该作者]

请大家帮一下忙,我设计了一个记分软件需要统计最高分、最低分,去掉最高分和最低分的平均值。共7个裁判 去掉一个最高、去掉一个最低,计算五个裁判的平均分,另根据平均分计算名称

      A裁判  B裁判  C裁判  D裁判  E裁判  F裁判  G裁判  去掉最高分  去掉最低分   平均分  排名

1行  98.5    99.5    90.1   85       89     92.6    98.4

2行   93.2    92.6    99.1   89.4    67.5   88.8    83.3


图片点击可在新窗口打开查看此主题相关图片如下:图片.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/21 11:00:00 [只看该作者]

 做个按钮

 

Dim dt As DataTable = DataTables("表A")
For Each dr As DataRow In dt.Select("")
    Dim ary() As Double = {dr("A裁判"), dr("B裁判"), dr("C裁判"), dr("D裁判")}
    array.sort(ary)
    dr("最低分") = ary(0)
    dr("最高分") = ary(ary.length-1)
    dr("平均分") = (ary(1) + ary(2)) / 2
Next
Dim drs As List(Of DataRow) = dt.Select("", "平均分 desc")
For n As Integer = 0 To drs.Count - 1 '遍历所有行
    If n > 0 AndAlso drs(n)("平均分") = drs(n-1)("平均分") Then '如果总分和上一行相同
        drs(n)("排名") = drs(n-1)("排名") '则排名等于上一行
    Else
        drs(n)("排名") = n + 1 '设置排名
    End If
Next


 回到顶部