ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何按成绩和性别分班

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-7-24 17:03 | 显示全部楼层
hlly888 发表于 2014-7-24 16:07

hlly888老师你好
又看到你的新作了,增加了“基数统计”,这样能更好的了解分班情况。
提两点建议:
1、从“基数统计”中的“同姓名统计”中可查找同姓名的人分在哪班。结果显示,有同姓名的人分在同一班,这样不便于日常教学。能不能分班时,同姓名的人不要分在同一班。(以前没有去查看同一班有没有同姓名的人)
2、分班关键字“性别”、“总分”能不能象aoe1981老师的程序那样,只要“性别”、“总分”文字不变,不管位置在哪,都能分班。这样便于根据各人需要,设计表格。

谢谢。

TA的精华主题

TA的得分主题

发表于 2014-7-24 17:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
hlly888 发表于 2014-7-24 16:05
增加了基本数据统计,虽然可有可无,但是对全面了解学生情况还是有所帮助的。

老师好
“增加了基本数据统计,虽然可有可无,但是对全面了解学生情况还是有所帮助的。”是呀,帮助查出问题了,同姓名的人分在同一班,这样不好。以前我们编班时都要一班一班查,看看有没有同姓名的人分在同一班,有的话尽量要调整。多麻烦呀。

TA的精华主题

TA的得分主题

发表于 2014-7-24 17:14 | 显示全部楼层
hlly888 发表于 2014-7-24 16:05
增加了基本数据统计,虽然可有可无,但是对全面了解学生情况还是有所帮助的。

如果在“报名信息”表中改变了字段(增加或减少),在“基数统计”使用中,有些功能会出错。

TA的精华主题

TA的得分主题

发表于 2014-7-24 17:27 | 显示全部楼层
aoe1981 发表于 2014-7-24 15:37
  以下附件与我在165楼中的附件在速度上差不多,按理应该下列附件稍快,需做出多次检测,才有结论……
  ...

呵呵,你还是先研究一下我的代码吧。 计算耗时约0.03-0.04秒
  1. Sub kagawa()
  2.    
  3.     k = Val(InputBox("How many class ?", "", 10)) '输入分班数 例如=10个班级
  4.     tms = Timer '开始计时

  5.     Sheets("报名信息表").Activate
  6.     m = [b65536].End(3).Row - 2 '数据表有效行数m
  7.     n = 18 '数据表有效列数n (到R列)
  8.     [a3].Resize(m, n).Sort [d3], 2, [q3], , 2, , , 2 '按男女、分数进行工作表倒序排序
  9.     arr = [a3].Resize(m, n) '工作表排序后的数据读入数组arr
  10.    
  11.    
  12.     ReDim brr(k - 1) '按班级数定义嵌套数组
  13.     ReDim crr(-1 To m \ k, 1 To n) '记录每个班信息的嵌套子数组
  14.     For j = 1 To n
  15.         crr(-1, j) = Cells(2, j) '写入班级信息标题栏
  16.     Next
  17.     For i = 0 To k - 1
  18.         brr(i) = crr '嵌套数组初始化
  19.     Next
  20.         
  21.     For t = 0 To m - 1 '按排序后的顺序 遍历原始数据各行
  22.         c = (t + t \ k) Mod k '计算当前班级 【注意:可按楼主要求自动进行班级顺序错位】
  23.                                      '即 12345 23451 34512 45123 51234 12345 ……这样的错位进行
  24.         i = t \ k  '计算当前班级所在行序号i
  25.         brr(c)(i, 1) = c + 1 '第1列写入分配班级
  26.         For j = 2 To n '第2-18列 照搬原始数据
  27.             brr(c)(i, j) = arr(t + 1, j)
  28.         Next
  29.     Next
  30.     MsgBox Format(Timer - tms, "0.000s") '2380个学生分成10个班计算耗时约 0.03-0.04秒
  31.    
  32.     '下面是向各个工作表输出各班级结果
  33.     For i = 0 To k - 1
  34.         Sheets(i + 3).Range("a1").Resize(m \ k + 2, n) = brr(i)
  35.         '注意Sheets(i + 3)里面的参数3可以自行调整 总之是凑成实际输出Sheet时的正确序号。
  36.     Next
  37. End Sub
复制代码
呵呵,论数组计算,还是我高明。


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-7-24 17:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 达州张先生 于 2014-7-24 17:34 编辑
香川群子 发表于 2014-7-24 17:27
呵呵,你还是先研究一下我的代码吧。 计算耗时约0.03-0.04秒呵呵,论数组计算,还是我高明。


你们都会做,就我不会哦,我的悲哀! 各种格式我都糊涂了。谢谢!

TA的精华主题

TA的得分主题

发表于 2014-7-24 17:42 | 显示全部楼层
各位高手,我一路看了,我校也准备分班,你们讨论的问题,是学校班主任和授课老师关注的重点,分班均衡与否,直接关系到班主任带班的好坏,和班主任的工作量。最后的问题提得很好,同姓名的人分在同一班,同学、班主任、授课教师、学校考试、成绩等等,都很麻烦,我认为必须解决!向各位高手学习。

TA的精华主题

TA的得分主题

发表于 2014-7-24 19:49 | 显示全部楼层
夏秋梦 发表于 2014-7-24 17:42
各位高手,我一路看了,我校也准备分班,你们讨论的问题,是学校班主任和授课老师关注的重点,分班均衡与否 ...

什么叫“同姓名的人分在同一班”?附件中是模拟数据,基本的有170人,为了测试代码的效率,复制粘贴了若干次,凑了2380人,所以才有那么多的同姓名……不知你是不是这样认为的……

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-7-24 19:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
jxndwxs 发表于 2014-7-24 17:09
老师好
“增加了基本数据统计,虽然可有可无,但是对全面了解学生情况还是有所帮助的。”是呀,帮助查出 ...

同姓名的分在了同一个班,原来是这个情况……我看就不要指着一次完成这个工作了,先按既定的规则分班,再查重名,同分数段的在不同班之间调换,这个应该是少数,只是数据量大的时候如何找出来是个问题……

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-7-24 19:54 | 显示全部楼层
jxndwxs 发表于 2014-7-24 17:03
hlly888老师你好
又看到你的新作了,增加了“基数统计”,这样能更好的了解分班情况。
提两点建议:

你提的一个“择班”问题,一个“重姓名”问题,都是重磅的呀……看来这个工作应当分步骤完成,指着一次性完成,太麻烦了……

TA的精华主题

TA的得分主题

发表于 2014-7-24 19:59 | 显示全部楼层
香川群子 发表于 2014-7-24 17:27
呵呵,你还是先研究一下我的代码吧。 计算耗时约0.03-0.04秒呵呵,论数组计算,还是我高明。

这个的确是的,您是数组、组合……的鼻祖!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 15:36 , Processed in 0.036262 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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