Excel精英培训网

 找回密码
 注册

QQ登录

只需一步,快速开始

你正在寻找更好的Excel学习教程吗?Excel技巧80集+数据透视表+函数初中高全套+VBA80集,想学的这儿全都有
查看: 465|回复: 48

[已解决] [已解决]有关成绩统计,请大师们帮忙,谢谢

[复制链接]
发表于 2017-6-4 10:00 | 显示全部楼层 |阅读模式
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
本帖最后由 yh21cn 于 2017-6-5 23:11 编辑

要求:根据单元格【E6】的值的改变触发程序运行:
sheet1:
1.算出本工作表对应科目的上线分,即在sheet2中分科目找出排在第N名的各科分数(n为sheet1中E6的数值),总分则找出第n名学生的总分;
sheet3:
1.算出各班总分上线人数,即各班总分排在前n名的人数(n为sheet1中E6的数值),显示在总分上线处
2.统计各班单科排在前n名的人数,显示在各科单上线处
3.统计各班总分排在前n名且单科也排在前n名的人数,显示在各科双上线处
4.计算贡献率,用双上线人数除以总分上线人数,以百分数显示
5.最后,在全级处,把同一列的人数相加,贡献率那里就全级双上线人数除以sheet3!B51

111.rar

21.86 KB, 下载次数: 3

金币
20  
积分
26 
帖子
8 
today0427发布于 2017-6-6 12:40:05 |显示全部回帖
我本来就是按照你的[e4]单元格做的,然而你数据源和你的[E4]没有对上,我现在不管你的[E4]了,我只按照你数据源的考号第一个字来算年级。

相关帖子

发表于 2017-6-4 10:15 | 显示全部楼层
本帖最后由 砂海 于 2017-6-4 10:16 编辑

F10
=AGGREGATE(14,4,OFFSET(Sheet2!$C$3:$C$329,,ROW(A1)),$E$6)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-4 10:24 | 显示全部楼层
砂海 发表于 2017-6-4 10:15
F10
=AGGREGATE(14,4,OFFSET(Sheet2!$C$3:$C$329,,ROW(A1)),$E$6)

好像不行啊,另外能不能用代码实现?
回复 支持 反对

使用道具 举报

发表于 2017-6-4 10:29 | 显示全部楼层
你是用的2003么 ? nn - 副本.gif

----------------------------
木有兴趣写代码.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-4 10:32 | 显示全部楼层
砂海 发表于 2017-6-4 10:29
你是用的2003么 ?

----------------------------

是2003啊~
回复 支持 反对

使用道具 举报

发表于 2017-6-4 12:37 | 显示全部楼层
本帖最后由 砂海 于 2017-6-4 12:39 编辑

=LARGE(OFFSET(Sheet2!$C$3:$C$329,,ROW(A1)),$E$6)
03用这个 , 2楼的排除空格与错误 , 这个不行

评分

参与人数 1经验 +1 收起 理由
yh21cn + 1 很给力

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-4 12:39 | 显示全部楼层
砂海 发表于 2017-6-4 12:37
=LARGE(OFFSET(Sheet2!$C$3:$C$329,,ROW(A1)),$E$6)

谢谢,这个可以实现!

还是期待代码的,哈哈
回复 支持 反对

使用道具 举报

发表于 2017-6-4 12:44 | 显示全部楼层
自己录制吧 , 录制的比较冗余 , 但也能用

思路就是 排序 ,  然后把第30个数值弄过来
回复 支持 反对

使用道具 举报

发表于 2017-6-5 08:30 | 显示全部楼层
本帖最后由 today0427 于 2017-6-5 08:35 编辑

数据源规范,不用sql做可惜了,单元格【E6】的值的改变触发程序运行,我还根据我的恶趣味把颜色搞得花花绿绿的好鲜艳不客气真的!
还有,你提取前30名的人数不一定刚好30,有可能会超过,因为有并列成绩。

2.png

1.png

成绩统计.rar

52.62 KB, 下载次数: 13

评分

参与人数 2经验 +10 收起 理由
laoau138 + 9 来学习
yh21cn + 1 赞一个

查看全部评分

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-5 23:08 | 显示全部楼层
today0427 发表于 2017-6-5 08:30
数据源规范,不用sql做可惜了,单元格【E6】的值的改变触发程序运行,我还根据我的恶趣味把颜色搞得花花绿 ...

朋友,发现你的代码非常给力,再次求助,十分感谢

sheet1:
1.算出本工作表对应科目的上线分,即在sheet2中分科目找出排在第N名的各科分数(n为sheet1中E6的数值),总分则找出第n名学生的总分;
sheet3:
1.算出各班总分上线人数,即各班总分排在前n名的人数(n为sheet1中E6的数值),显示在总分上线处
2.统计各班单科排在前n名的人数,显示在各科单上线处
3.统计各班总分排在前n名且单科也排在前n名的人数,显示在各科双上线处
4.计算贡献率,用双上线人数除以总分上线人数,以百分数显示
5.最后,在全级处,把同一列的人数相加,贡献率那里就全级双上线人数除以sheet3!B51

111.rar

21.86 KB, 下载次数: 8

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2017-6-26 01:28 , Processed in 0.187201 second(s), 37 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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