ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-7-24 23:00 | 显示全部楼层
hedgehog93 发表于 2012-7-21 09:09
大哥,再麻烦你一下,具体见附件里说明,在“1-现在的汇总表”里。实际使用中确实发现一些不便。敬请理解 ...

首先说明一点,总分为0或空白,程序本来就是不计人数的。
但是具体到每个科目则是计算0分的人数,但空白是不算的。
即总人数:根据第一列中的班号来统计的
考试人数:有分数的人数,含0分。参加了考试也可能是得分为0分的。
考核人数:考试人数*考核比例

TA的精华主题

TA的得分主题

发表于 2012-7-25 21:21 | 显示全部楼层
本帖最后由 hedgehog93 于 2012-7-25 21:22 编辑
mjzxlmg 发表于 2012-7-24 23:00
首先说明一点,总分为0或空白,程序本来就是不计人数的。
但是具体到每个科目则是计算0分的人数,但空白 ...

谢谢。大哥。

我现在又想研究一下怎样输出前20%(依据优秀比例设置的)的成绩册。想请问下在哪里加一段代码?

TA的精华主题

TA的得分主题

发表于 2012-7-26 09:11 | 显示全部楼层
我用笨办法实现了这个输出。
Sheets("成绩源").Activate
        last_row = Sheets("成绩源").Cells(Rows.count, 1).End(3).Row '返回成绩源行数
        last_col = Sheets("成绩源").Cells(1, Columns.count).End(xlToLeft).Column '返回成绩源列数
        Sheets("成绩源").Range(Cells(1, 1), Cells(last_row, last_col)).Sort key1:=Cells(2, last_col - 2), order1:=2, Header:=xlYes '按总分降序排序order1:=2,1为升序
        Sheets("优生名册").Activate
        Sheets("优生名册").Range(Cells(1, 1), Cells(1, last_col)).Merge
        With Sheets("优生名册").Cells(1, 1)
             .Value = Sheets("设置").[b2].Value & "优生名册"
             .Font.Size = 16
             .Font.Name = "微软雅黑"
             .Font.Bold = True
             .HorizontalAlignment = xlCenter
       End With
       Sheets("成绩源").Activate
       Sheets("成绩源").Range(Cells(1, 1), Cells(YXRS + 1, last_col)).Copy Sheets("优生名册").Cells(2, 1)
       Sheets("优生名册").Columns("a:bZ").EntireColumn.AutoFit
       Sheets("优生名册").Range("a:bz").HorizontalAlignment = xlCenter

TA的精华主题

TA的得分主题

发表于 2012-7-26 09:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
mjzxlmg 发表于 2012-7-24 23:00
首先说明一点,总分为0或空白,程序本来就是不计人数的。
但是具体到每个科目则是计算0分的人数,但空白 ...

大哥,今天又发现一个问题,我有个年级,有487人,取20%应该是97.4人是不?程序取了98个人出来,但是第98名和第99名总成绩一样,第99名却没有取出来,请问一下,要在哪里优化一下?

TA的精华主题

TA的得分主题

发表于 2012-7-26 11:49 | 显示全部楼层
hedgehog93 发表于 2012-7-26 09:11
我用笨办法实现了这个输出。
Sheets("成绩源").Activate
        last_row = Sheets("成绩源").Cells(Ro ...

用高级筛选复制到另外的工作表即可

TA的精华主题

TA的得分主题

发表于 2012-7-26 11:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hedgehog93 发表于 2012-7-26 09:14
大哥,今天又发现一个问题,我有个年级,有487人,取20%应该是97.4人是不?程序取了98个人出来,但是第98 ...

1、你看一下排名表,看看有几个人?
2、总分是否有0分的或空白的

TA的精华主题

TA的得分主题

发表于 2012-7-26 11:55 | 显示全部楼层
是这样的,本来这个年级是488人,有两个人,一个全是零分,一个是空白。

TA的精华主题

TA的得分主题

发表于 2012-7-26 12:01 | 显示全部楼层
本帖最后由 hedgehog93 于 2012-7-26 12:18 编辑
mjzxlmg 发表于 2012-7-26 11:51
1、你看一下排名表,看看有几个人?
2、总分是否有0分的或空白的


是这样的,本来这个年级是488人,有两个人,一个全是零分,一个是空白。0分是要承认的噻?但是我觉得既然98名跟99名分数一样,为什么98名计进去了,99名没计进去呢?这有点不对吧?

TA的精华主题

TA的得分主题

发表于 2012-7-26 12:47 | 显示全部楼层
本帖最后由 hedgehog93 于 2012-7-26 14:33 编辑

在考虑是不是在计算总分时,全是0分的没有算总分,也没有算名次!由此造成的?

观察了一下,在窗口初始化时,总分0有计算出来,但是一点查询或导出,总分0消失,而且也不排名次。

TA的精华主题

TA的得分主题

发表于 2012-7-26 14:19 | 显示全部楼层
现在还出现了一个奇怪的现象,就是。其它科目都是98个优秀人数,只有总分只有97个优秀人数。 123456.JPG
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-21 09:01 , Processed in 0.045934 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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