班级
|
姓名
|
语文
|
数学
|
英语
|
语数英
|
物理
|
化学
|
生物
|
物化生
|
语数英物化生
|
分数
|
级名
|
班名
|
分数
|
级名
|
班名
|
分数
|
级名
|
班名
|
小计
|
级名
|
班名
|
分数
|
级名
|
班名
|
分数
|
级名
|
班名
|
分数
|
级名
|
班名
|
小计
|
级名
|
班名
|
总分数
|
级名
|
班名
|
1
|
宗
|
150
|
1
|
1
|
148
|
2
|
2
|
150
|
1
|
|
448
|
1
|
1
|
100
|
1
|
1
|
|
|
|
|
|
|
100
|
1
|
1
|
548
|
1
|
1
|
1
|
需
|
146
|
2
|
2
|
150
|
1
|
1
|
149
|
3
|
|
445
|
2
|
2
|
95
|
2
|
2
|
|
|
|
|
|
|
95
|
2
|
2
|
540
|
3
|
2
|
2
|
杨
|
145
|
3
|
1
|
148
|
2
|
1
|
148
|
4
|
|
441
|
4
|
1
|
100
|
1
|
1
|
|
|
|
|
|
|
100
|
1
|
1
|
541
|
2
|
1
|
2
|
李
|
140
|
4
|
2
|
145
|
5
|
2
|
148
|
4
|
|
433
|
5
|
2
|
95
|
2
|
2
|
|
|
|
|
|
|
95
|
2
|
2
|
528
|
6
|
2
|
3
|
张
|
138
|
5
|
3
|
148
|
2
|
1
|
145
|
5
|
|
431
|
6
|
2
|
100
|
1
|
1
|
|
|
|
|
|
|
100
|
1
|
1
|
531
|
5
|
2
|
3
|
安
|
145
|
3
|
3
|
147
|
3
|
2
|
149.5
|
2
|
|
441.5
|
3
|
1
|
95
|
2
|
2
|
|
|
|
|
|
|
95
|
2
|
2
|
536.5
|
4
|
1
|
3
|
库
|
130
|
6
|
2
|
146
|
4
|
3
|
140
|
7
|
|
416
|
8
|
3
|
90
|
3
|
3
|
|
|
|
|
|
|
90
|
3
|
3
|
506
|
7
|
3
|
3
|
王
|
125
|
7
|
1
|
140
|
6
|
4
|
142
|
6
|
|
407
|
9
|
4
|
88
|
4
|
4
|
|
|
|
|
|
|
88
|
4
|
4
|
495
|
8
|
4
|
1
|
孔
|
146
|
2
|
2
|
135
|
7
|
3
|
145
|
5
|
|
426
|
7
|
3
|
|
|
|
|
|
|
|
|
|
|
|
|
426
|
9
|
3
|
For Each dr As DataRow In DataTables("学生成绩统计表").DataRows
dr("语数英_小计")=dr("语文_分数")+dr("数学_分数")+dr("英语_分数")
dr("物化生_小计")=dr("物理_分数")+dr("化学_分数")+dr("生物_分数")
dr("语数英物化生_总分数")=dr("语文_分数")+dr("数学_分数")+dr("英语_分数")+dr("物理_分数")+dr("化学_分数")+dr("生物_分数")
Next
Dim drs As List(of DataRow) =
DataTables("学生成绩统计表").Select("班级 is not null","语数英物化生_总分数")
For i As Integer = 0 To
drs.Count - 1
drs(i)("语文_级名") = i + 1
Next
For i As Integer = 0 To
drs.Count - 1
drs(i)("数学_级名") = i + 1
Next
For i As Integer = 0 To
drs.Count - 1
drs(i)("英语_级名") = i + 1
Next
For i As Integer = 0 To drs.Count
- 1
drs(i)("语数英_级名") = i + 1
Next
For i As Integer = 0 To drs.Count
- 1
drs(i)("物理_级名") = i + 1
Next
For i As Integer = 0 To drs.Count
- 1
drs(i)("化学_级名") = i + 1
Next
For i As Integer = 0 To drs.Count
- 1
drs(i)("生物_级名") = i + 1
Next
For i As Integer = 0 To drs.Count
- 1
drs(i)("物化生_级名") = i + 1
Next
For i As Integer = 0 To drs.Count
- 1
drs(i)("语数英物化生_级名") = i + 1
Next
Dim lst As List(of String ) =
DataTables("学生成绩统计表").GetValues("班级","班级 is not
null")
For Each s As String In lst
drs =
DataTables("学生成绩统计表").Select("班级='" & s & "'","语文_分数 desc ")
For i As
Integer = 0 To drs.Count - 1
drs(i)("语文_班名") = i + 1
Next
Next
For Each s As String In lst
drs =
DataTables("学生成绩统计表").Select("班级='" & s & "'","数学_分数 desc ")
For i As
Integer = 0 To drs.Count - 1
drs(i)("数学_班名") = i + 1
Next
Next
For Each s As String In lst
drs =
DataTables("学生成绩统计表").Select("班级='" & s & "'","英语_分数 desc ")
For i As
Integer = 0 To drs.Count - 1
drs(i)("英语_班名") = + 1
Next
Next
For Each s As String In lst
drs =
DataTables("学生成绩统计表").Select("班级='" & s & "'","语数英_小计 desc ")
For i As
Integer = 0 To drs.Count - 1
drs(i)("语数英_班名") = i + 1
Next
Next
For Each s As String In lst
drs =
DataTables("学生成绩统计表").Select("班级='" & s & "'","物理_分数 desc ")
For i As
Integer = 0 To drs.Count - 1
drs(i)("物理_班名") = i + 1
Next
Next
For Each s As String In lst
drs =
DataTables("学生成绩统计表").Select("班级='" & s & "'","化学_分数 desc ")
For i As
Integer = 0 To drs.Count - 1
drs(i)("化学_班名") = i + 1
Next
Next
For Each s As String In lst
drs =
DataTables("学生成绩统计表").Select("班级='" & s & "'","生物_分数 desc ")
For i As
Integer = 0 To drs.Count - 1
drs(i)("生物_班名") = i + 1
Next
Next
For Each s As String In lst
drs =
DataTables("学生成绩统计表").Select("班级='" & s & "'","物化生_小计 desc ")
For i As
Integer = 0 To drs.Count - 1
drs(i)("物化生_班名") = i + 1
Next
Next
For Each s As String In lst
drs = DataTables("学生成绩统计表").Select("班级='" & s
& "'","语数英物化生_总分数 desc ")
For i As
Integer = 0 To drs.Count - 1
drs(i)("语数英物化生_班名") = i + 1
Next
Next
上表是共9个同学在不同的3个班的一次考试成绩表。
老师:您好!上述代码不能完全实现以下要求。请老师修改一下。谢谢!!!
用代码来实现每个同学各科_分数,语数英_小计,语数英物化生_总分数的级名不同,如何在“级名”列显示相应的名次“数目” ;班名不同,如何在“班名”列显示相应的名次“数目”? 当“级名”、“班名” 并列是,如何在“级名”列、“班名”列显示相同相应的重复名次的“数目”?
1、 如表所示的成绩,一班的“宗”同学:“语文”的成绩150级名为第一名,如何在“级名”列显示为“1”? 班名为第一名,如何在“班名”列显示为“1”?“数学”成绩与三班“张”同学“数学”成绩均是148级名并列第二名,如何在“级名”列显示为“2”?“张”同学“数学”成绩 班名排第一名,如何在“班名”列显示为“1”?
即各科_分数、语数英_小计、语数英物化生_总分数的级名是随各科分数变化而变化,而不应该是用某一科成绩的级名作为所有学科成绩的年级排名?
3、三班的“安”同学语文成绩与二班的“杨”同学语文成绩145是级名并列第3名,如何在“级名” 列与二班的“杨”同学均显示为“3”?
一班的“孔”同学与同班的“需”同学语文成绩均146,是级名并列第二名,如何在“孔”同学的“级名”列、“孔”同学的“级名”列均显示为“2”? “孔”同学与同班的“需”同学语文成绩还是班名并列第二名,如何在“孔”同学“班名”列显示为“2”, 在“需”同学“班名”列也显示为“2”,?
4、当某一科成绩清除时,班名列、级名列如何显示为清空状态?
我的版本2021.4.5前版本
谢谢!!!