教务老师EXCEL排课的思考一

每一年开学的排课都是让领导头疼的事情,幸亏我不是领导。

排课的事情都不是我负责的。

我们是年级负责制,课程表都是有年级安排的。

我见识了两种的排课。

  1. 拿了小棍、树叶等等,代表不同的类型。教我的老教师非常认真,居然把有着各种奇葩规定的课程表给排了。
  2. EXCEL的初级应用,就是把各个科目用不同的颜色代替,从任课班最多的那一个老师开始。

实践证明,排课程表的那个人总是要挨骂的。每个人都站到自己的角度思考,他说他有小孩,要抽时间接小孩,那个时间不能上。他说他身体不能连排,他说最喜欢连排的……。一人难称十人意。

实践才是检验真理的唯一标准,真的排完公布了,在各种骂声中。个人各显神通,领导制定标准哪些能动哪些不能动,动了要备案等等。

各个老师的智慧能超出我的想象,我本身认为那些都不可能调成功的课,她竟然调成功了。

当然的更多是老的欺负小的,强的欺负弱的。

学校也是个江湖。

我思考了几年尝试各种方法,始终没有找到仅仅在EXCEL环境下排课的方法。

排课的是个多结果的算法,IF也只能给256种可能。

这个活EXCEL干不了。

学习各路大神的做法,最好事先的应该的VBA。

要注册软件,要重新学习。

主要不给我涨工资。
我花钱学了,花钱注册了软件,各种各样的活儿都是我的。功劳不是我的,如果出纰漏了,锅我要背。

今天只能让大家失望了,给大家一个不成熟的排课表思路。

我们模拟学校七八九三个年级,每个年级12个班,每周上五天,每天上11节课,上午5节,下午4节,晚自习2节,周五晚自习不上。

这样每班每周上11×5-2=53节课,12×3×52=1908节课。

依照数据不交叉原则,我们要做1908条数据。

铺序 A2:A1908从1到1908,然后年级,循环了36个班级,增加了班级星期节序,就是这个班这周的第几节课,也方便了后面列星期构造,每日课节序 的构造。

下列学科,这个是关键,要想排课首先模拟一下:

G2单元格我们输入“={INDEX(分课规则!$A$1:$C$37,RANDBETWEEN(SMALL(IF(分课规则!$B$1:$B$37=B2,ROW(分课规则!$B$1:$B$37)),1),COUNTIF(分课规则!$B$1:$B$37,B2)+SMALL(IF(分课规则!$B$1:$B$37=B2,ROW(分课规则!$B$1:$B$37)),1)-1),3)”}

数组公式一定要用三键确定。

大致解释公式:INDEX第一个参数分课规则!$A$1:$C$37,我们定义一个分课规则:

首先要用的每个年级要上哪些课。

SMALL(IF(分课规则!$B$1:$B$37=B2,ROW(分课规则!$B$1:$B$37)),1),年级所在行的最小行 。

COUNTIF(分课规则!$B$1:$B$37,B2)+SMALL(IF(分课规则!$B$1:$B$37=B2,ROW(分课规则!$B$1:$B$37)),1)-1,是年级所在行的最大行 。

这两个分别作为RANDBETWEEN的第一个和第二个参数,在这些行 中任意选择一个行 。

3是INDEX的第三个参数,是选择区域的列 ,就是学科所在的列。

往下填充模拟课表排完。

下一列把班级学科对应成老师姓名。

H2键入“=INDEX(任课教师表!$A$1:$Q$37,MATCH(C2,任课教师表!$B$1:$B$37,0),MATCH(G2,任课教师表!$A$1:$Q$1,0))”

下面我们就可以统计每个老师,每个班的上课情况,看是否符合要求。

无论我怎么思考,这个只能达到统计的结果,但如果再铺数,就是会出现函数的循环套用。

今天就到此为止,实际的结果是EXCEL不能实现自动排课,还是要手动进行。

在排课过程中的监督还是很有效的。

排完课分给班级,教师课程表自动生成都可以达到。

明天继续……

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月27日
下一篇 2021年6月27日

相关推荐