Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3865|回复: 8

[已解决]成绩汇总(用VBA代码编写)

[复制链接]
发表于 2013-4-15 07:53 | 显示全部楼层 |阅读模式
46学分
本帖最后由 long826121 于 2013-4-15 08:58 编辑

首先非常感谢各位兄弟姐妹,希望你们抽出时间帮我下。
要求:
     1.当点击“汇总”按钮后,第3行第一个单元格显示“语文”,第4行自动显示“姓名、第一单元测试、第二单元测试、第三单元测试、第四单元测试、期中测试、第五单元测试、第六单元测试、第七单元测试、第八单元测试、第一次期末测试、第二次期末测试、期末测试、平均分、进步分数”,并且按学生姓名分别汇总成绩。(数据由“学生成绩表”汇总)
    【分科:第48行自动显示“数学”,第49行自动显示“姓名、第一单元测试、第二单元测试、第三单元测试、第四单元测试、期中测试、第五单元测试、第六单元测试、第七单元测试、第八单元测试、第一次期末测试、第二次期末测试、期末测试、平均分、进步分数”,并且按学生姓名分别汇总成绩。】
平均分计算方法:平均分=学生每次成绩总分之和/考试次数;例如:吴1平均分=(80+90.5+91.5)/3=87.3(保留一位小数)
进步分数计算方法:进步分数=最后一次分数-(表示减号)除最后一次考试外其他考试的平均分;
例如:吴1进步分数=91.5-(80+90.5)/2=6.3(平均分保留一位小数)【会出现负分,表示:没有进步反而退步】
注意一点:姓名不一定按吴1——吴44这样的顺序依次排列。
2.当成绩汇总完后,“汇总”按钮的名称自动显示为“清除”,一旦按“清除”,表中所有的内容自动清除。【包括“语文”“数学”两个单元格的内容以及其他数据内容】
成绩汇总.rar (12.57 KB, 下载次数: 25)

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-4-15 07:59 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-4-15 08:11 编辑

用SQL试过没?
各科成绩又如何来汇总呢?
回复

使用道具 举报

 楼主| 发表于 2013-4-15 08:51 | 显示全部楼层
hwc2ycy 发表于 2013-4-15 07:59
用SQL试过没?
各科成绩又如何来汇总呢?

各科成绩汇总在这个附件里,只是说的格式。 成绩汇总.rar (12.57 KB, 下载次数: 37)
回复

使用道具 举报

 楼主| 发表于 2013-4-15 08:56 | 显示全部楼层
hwc2ycy 发表于 2013-4-15 07:59
用SQL试过没?
各科成绩又如何来汇总呢?

要求已经编辑了,你可以看看!非常感谢!
回复

使用道具 举报

发表于 2013-4-15 19:08 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-4-15 19:11 编辑

进步分数用SQL我暂时还实现不出来。
  1. transform sum(语文) select 姓名 from (select 姓名,考试名称,语文 from [学生成绩表$A:C] union select 姓名,'总分',sum(语文) from [学生成绩表$A:C] group by 姓名 union select 姓名,'平均分',AVg(语文) from [学生成绩表$A:C] group by 姓名 ) group by 姓名 pivot 考试名称
复制代码
查独查一科的成绩汇总,这个SQL语句也并差多了,针对多门课程用VBA的时候,可以自动生成科目的查询语句。



QQ截图20130415191147.jpg

评分

参与人数 1 +12 收起 理由
long826121 + 12 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2013-4-16 19:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2013-4-17 10:04 编辑

成绩汇总2.rar (18.74 KB, 下载次数: 112)

评分

参与人数 1 +12 收起 理由
long826121 + 12 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-4-16 21:44 | 显示全部楼层
稍作修改后的附件: 成绩汇总.rar (20.24 KB, 下载次数: 30)
回复

使用道具 举报

 楼主| 发表于 2013-4-16 21:45 | 显示全部楼层
zjdh 发表于 2013-4-16 19:13

非常感谢你啊!
回复

使用道具 举报

发表于 2013-4-17 10:03 | 显示全部楼层
这2句有误
If J > UBound(BRR) Then D = D + 1
If J > UBound(BRR) Then D = D + 1
6楼附件已更新
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 13:46 , Processed in 0.254035 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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