注册 登录
编程论坛 Excel/VBA论坛

考试成绩分析

xiongwenlai 发布于 2018-11-03 12:02, 3671 次点击
只有本站会员才能查看附件,请 登录

每次考完试都要做成绩分析处理。我再论坛里看到了一些作品,但是我才疏学浅,很多地方看不懂,而且每所学校的要求各不相同,我也不懂得如何更改,之前发过一个文件,但是领导看了后觉得麻烦,所以把我之前的版面更改了,没办法 我只能发到这里,请求有时间的大侠帮忙处理三个表格问题。在此先谢过走过路过的朋友啦!附上文件里的要求,主要是三率表里的要求比较复杂。
只有本站会员才能查看附件,请 登录

1、计算本班的平均分、优秀率、及格率 就得到年级的平均分、优秀率、及格率                                                                                
【年级平均分、优秀率、及格率是在本年级所有班级计算后再取平均数,在两个校区中同一个年级各班数据的平均值,而不是分开取平均值】,【也不是直接由年级总分/年级人数、年级优秀人数/年级人数、年级及格人数/年级人数】                                                                                
2、所有涉及到【差值】都是为班级的数据-年级的数据                                                                                
3、排名:所有排名都是依据【差值】进行排名(在各年级中排名,在两个校区同年级所有班级中排名,而不是分开校区排名)        
【注意:1-4年级在两个校区同年级所有班级中排名
        5年级和6年级分奇数班和偶数班,那么排名是在两个校区同年级中的奇数班或者偶数班中排名】                                                               
4、积分:班级数+1-排名        (在各年级中排名)                                                                        
【注意:1-4年级在两个校区同年级所有班级数+1-排名
        5年级和6年级分奇数班和偶数班,那么积分也是在两个校区同年级中所有奇数班班数+1-排名或者所有偶数班班数+1-排名】                                                                                
6、1-5年级语文、数学、英语优秀分都为>=90,及格分都为>=60                                                                                
   6年级语文:奇数班优秀分>=85、偶数班>=80、奇数班和偶数班及格分都为>=60;                                                                                
   6年级数学:奇数班优秀分>=90、偶数班>=80、奇数班和偶数班及格分都为>=60;                                                                                
   6年级英语:奇数班优秀分>=27、偶数班>=24、奇数班和偶数班及格分都为>=18;
在此,谢谢各位看到过帖子,帮忙的朋友。
8 回复
#2
xiongwenlai2018-11-04 20:22
走过路过的兄弟姐妹 不知道你们有没有在处理我这文件了?期待你们的好消息。
#3
xyxcc1772018-11-05 11:59
闲了看看,你的要求不少
#4
xiongwenlai2018-11-05 19:00
回复 3楼 xyxcc177
朋友 可以帮忙做吗?谢谢!
#5
wengjl2018-11-10 11:13
可以用VFP做吗?还是一定要EXCEL来解决?
#6
xiongwenlai2018-11-12 11:13
回复 5楼 wengjl
可以啊。你看怎么方便就怎么做。谢谢!期待您的成品。我的QQ305845432  我的邮箱305845432@ 你可以加我QQ  方便联系。谢谢!
#7
xyxcc1772018-11-17 18:43
只有本站会员才能查看附件,请 登录

只统计了平均分优秀率和及格率,没有时间了
#8
xiongwenlai2018-12-08 20:02
回复 7楼 xyxcc177
谢谢大侠的帮忙 你QQ 多少呢? 加你可以吗?
#9
icecool2018-12-14 11:47
只有本站会员才能查看附件,请 登录


你做试了一下主表的各种排序,点一下按钮完成各科的正反排序。
排序前得把表复制一份改名,前面加上“复件”,如:复件成绩分析纵向10-31.xls
(因本身是打开的,VBA读取不了)

代码如下:
程序代码:


Function paixu(kemu, lie, xu)
    Dim dbAddr
    dbAddr = ThisWorkbook.Path & "\" & "复件" & ThisWorkbook.Name

    Dim Conn As ADODB.Connection  '连接
    Set Conn = New ADODB.Connection

    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    connstrxls = "DBQ=" & dbAddr & ";DefaultDir=;DRIVER={Microsoft Excel Driver (*.xls)};"
    Conn.Open connstrxls
SQL = "select 姓名 from [起点成绩$] order by " & kemu & " " & xu
rs.Open SQL, Conn
i = 2
Do While Not rs.EOF
   Range(lie & i) = rs("姓名")
   i = i + 1
   rs.MoveNext
Loop

End Function

Private Sub command1_Click()
   Call paixu("语文", "j", "desc")
End Sub

Private Sub command2_Click()
 Call paixu("数学", "k", "desc")

End Sub

Private Sub command4_Click()
   Call paixu("语文", "n", "asc")
End Sub

Private Sub command6_Click()
 Call paixu("总分", "q", "asc")
End Sub

Private Sub CommandButton1_Click()
 Call paixu("总分", "m", "desc")
End Sub

Private Sub CommandButton2_Click()
 Call paixu("数学", "o", "asc")
End Sub

1