ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 沉潜

[求助] 较难的成绩统计代码求助

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-2-4 22:55 | 显示全部楼层
zyg365 发表于 2013-2-4 22:29
没有参加考试的即缺考,应该以0分计啊

没有参加考试就是没有参加考试,考了得0分才是0分吧。是有区别的

TA的精华主题

TA的得分主题

发表于 2013-2-5 10:08 | 显示全部楼层
zyg365 发表于 2013-2-4 22:29
没有参加考试的即缺考,应该以0分计啊

如果以0分计,考虑到对任课老师不太好,所以一般0分的都视为未参考,不参与统计。

TA的精华主题

TA的得分主题

发表于 2013-2-5 10:11 | 显示全部楼层
mjzxlmg 发表于 2013-2-4 22:55
没有参加考试就是没有参加考试,考了得0分才是0分吧。是有区别的

其实我们为了让老师心理上都能承受,不管是否参考,只要是0分,都筛选出来,把成绩弄成空的。因为一般也不会参考的只考了0分。

TA的精华主题

TA的得分主题

发表于 2013-2-5 10:12 | 显示全部楼层
mjzxlmg 发表于 2013-2-4 22:45
1、是这样的会出现错位,想到的处理办法均较麻烦。个人觉得,如果这样处理是否可以:先提取班级、姓名、科目 ...

那麻烦高手帮我实现一下,只要能达到出来后10%学生的班级,姓名和成绩,又能达到格式规范,当然最好不过了。

TA的精华主题

TA的得分主题

发表于 2013-2-5 22:45 | 显示全部楼层
hedgehog93 发表于 2013-2-5 10:12
那麻烦高手帮我实现一下,只要能达到出来后10%学生的班级,姓名和成绩,又能达到格式规范,当然最好不过了 ...

常用工具.rar (119.19 KB, 下载次数: 36)

TA的精华主题

TA的得分主题

发表于 2013-2-6 17:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 hedgehog93 于 2013-2-6 17:07 编辑
mjzxlmg 发表于 2013-2-5 22:45


程序已经越来越完美了。平均分现在也可以实现了。但是测试发现,如果少掉一个人某科的成绩(使其中一个学生的语文成绩为空),依然会有点小问题,截图如下: 11.JPG 通过截图我们会发现,当41班语文科目只有64人的成绩,其它科目有65的成绩后,导致语文科目10%也少了一人,结果导致41班格式出现问题。按成绩降序排列好像也忘了,呵呵!

TA的精华主题

TA的得分主题

发表于 2013-2-6 21:40 | 显示全部楼层
hedgehog93 发表于 2013-2-6 17:03
程序已经越来越完美了。平均分现在也可以实现了。但是测试发现,如果少掉一个人某科的成绩(使其中一个 ...

常用工具.rar (125.22 KB, 下载次数: 40)

TA的精华主题

TA的得分主题

发表于 2013-2-7 09:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 hedgehog93 于 2013-2-7 09:50 编辑
mjzxlmg 发表于 2013-2-6 21:40


看起来是解决了问题,可是成绩为空的却在后10%里了。我觉得应该有一条语句,来判断某个班某个科目后10%学生最多那一列的最大行号,然后平均分是那一行号+1,那么下一个班的是那一行号+2。这样效果才是最好的。具体到这个附件里来,后10%学生名册应该是这样的。将语句[code=vb]If Arr_out(i, j) = Empty Or Arr_out(i, j + 2) > Round(Class_Subject_number_dic(Arr_out(i, 1) & Arr_out(1, j)) * 0.9) Then[/code]修改为[code=vb]If Arr_out(i, j + 2) > Round(Class_Subject_number_dic(Arr_out(i, 1) & Arr_out(1, j)) * 0.9) Then[/code]后,程序截图比较,修改前 11.JPG 修改后 12.JPG 。麻烦再帮忙看一下对不对?

TA的精华主题

TA的得分主题

发表于 2013-2-7 09:49 | 显示全部楼层
mjzxlmg 发表于 2013-2-6 21:40

现在又出现一个新的问题,当科目增加后,程序会执行出错。麻烦高手帮忙看看,我上传一下现在的附件。 常用工具.rar (120.29 KB, 下载次数: 13)

TA的精华主题

TA的得分主题

发表于 2013-2-7 15:00 | 显示全部楼层
hedgehog93 发表于 2013-2-7 09:49
现在又出现一个新的问题,当科目增加后,程序会执行出错。麻烦高手帮忙看看,我上传一下现在的附件。

哦,不好意思,刚才检查可能是科目名称重复造成的。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-28 16:22 , Processed in 0.050490 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表