ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请高手指教——按要求分班

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-24 07:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
DataBus 发表于 2012-7-24 01:17
1班        2班        3班        4班        5班        6班
语文平均        87.64        87.64        87.62        87.64        87.63        87.62
数学平均        76.75        76.75        76.77        7 ...

给个解决的办法,要的是过程,不是结果。因为可能还会加学生的。还有一个六三学制的班级呢。呵呵……谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-24 07:56 | 显示全部楼层
swyrlbq 发表于 2012-7-23 19:45
给出一种方案:男生从第一班从高到低又从低到高分配;女生从最后一个班排起,排法同男生。一条公式:
=IF( ...

才.gif

TA的精华主题

TA的得分主题

发表于 2012-7-24 09:56 | 显示全部楼层
excelw 发表于 2012-7-24 07:56

前面公式有失误,修理了一下,请楼主验证:

分班表.zip

49.71 KB, 下载次数: 113

TA的精华主题

TA的得分主题

发表于 2012-7-24 13:39 | 显示全部楼层

点评

这个链接的解决方法只能对少量学生分得比较好,超过500学生就每个班平均分差10分以上了  发表于 2012-7-24 19:23

TA的精华主题

TA的得分主题

发表于 2012-7-24 16:58 | 显示全部楼层
swyrlbq 发表于 2012-7-24 09:56
前面公式有失误,修理了一下,请楼主验证:

经验算,男女人数,平均分各班基本接近,应该可以满足楼主要求,
我想SUM(N(J3<IF(E3=$E$3:$E$302,$J$3:$J$302,)))+SUM(N(IF(E3=$E$3:E3,$J$3:J3,)=J3))-1可以简化为
SUM(1*(J3<=($E$3:$E$302="男")*$J$3:$J$302))
可是为什么要取12的余数再取13的余数呢,请大侠指点

TA的精华主题

TA的得分主题

发表于 2012-7-24 18:13 | 显示全部楼层
lsj128568 发表于 2012-7-24 16:58
经验算,男女人数,平均分各班基本接近,应该可以满足楼主要求,
我想SUM(N(J3

SUM(1*(J3<=($E$3:$E$302="男")*$J$3:$J$302))
这个恐怕不行吧,因为分数相同,排各也相同,会分到同一个班。mod(数据,12)是为了产生1,2,3,4,5,6,6,5,4,3,2,1这12个数字的循环。mod(数据,13)是为了避免mod(12,12)返回0。

TA的精华主题

TA的得分主题

发表于 2012-7-24 19:51 | 显示全部楼层
本帖最后由 灰袍法师 于 2012-7-26 19:42 编辑

附件是最无脑的随机分班法,设定更多的随机次数可以获得更好的结果
学生数班数越多,效果越差;学生数班数越少,效果越好
但一般不可能得到分差低于1的结果(话说,要这么精密的结果干毛吖?)

补充一个得到高精度结果的 “简单又麻烦” 的方法
以楼主的300人分6班为例
可以分步处理
第一步:300人分两班
第二步:1班的150人分三班
第三步:2班的150人分三班
得到的结果非常好,由于分班规模小了,速度提高了,可以采用更多的随机次数,结果就是:最终结果的分差只有0.2以内。
就是手动操作麻烦一点
见附件 分三次得到极好的结果.rar (36.07 KB, 下载次数: 148)
对于性别,特长生之类,可以直接转为分数来处理
如附件设定为 男性=1000分,女性=0分
那么按平均分最低的原则分班,自然就会得到男女性别平衡的结果,无需另外考虑。

另外,采用更高级的算法如蚁群算法,遗传算法,肯定可以得到非常精密的结果,估计平均分差不会超过0.1,问题是:要这么精密的结果干毛吖?!

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-7-24 20:05 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-7-25 09:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
灰袍法师 发表于 2012-7-24 19:51
附件是最无脑的随机分班法,设定更多的随机次数可以获得更好的结果
学生数越多,效果越差;学生数越少,效 ...

静听法师教诲!呵呵

TA的精华主题

TA的得分主题

发表于 2012-7-25 15:07 | 显示全部楼层
灰袍法师 发表于 2012-7-24 19:51
附件是最无脑的随机分班法,设定更多的随机次数可以获得更好的结果
学生数越多,效果越差;学生数越少,效 ...

法师的基本思路是怎样的啊?
能介绍一下吗?
谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 17:36 , Processed in 0.045714 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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