制作完成的课程表如图:

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(1)

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(2)

知识点:利用Excel数据关联和规则公式完成指定数据排序

应用环境:学校课程表编排、员工任务、值班安排等

每个学期,学校教务处教师最头疼的一件工作就是编制课程表。一般学校的课程表至少包括给领导的全校总课程表、学生的班级课程表和教师用的课程表三种。三种课程表数据密切相关,修改任何一张课程表都将影响到另两张表格,因此编辑时很难兼顾。为此,作者利用Excel 2007轻松解决了这个问题,制作过程如下。

1.创建工作表

打开Excel 2007,创建七个工作表,分别重命名为:教师与班级、教师安排、总课程表、教师课程总表、班级课程总表、教师课程表打印、班级课程表打印(如图)

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(3)

“教师与班级”工作表是学校的教师名单和班级名单(如图)

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(4)

“教师安排”工作表是各班级的任课教师(如图)

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(5)

2总课程表编制

切换到“总课程表”工作表设计总课程表格,表中包括全部班级的课程安排和每节课的教师。总课程表外观(如图)

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(6)

选中B4,单击“数据”选项卡的“数据有效性”图标,在“数据有效性”窗口的允许下拉列表中选择“序列”,输入来源为“=教师安排!$A$3:$A$17”(不含引号),确定完成设置。在B5输入公式=IFERROR(VLOOKUP(B4,教师安排!$A:$S,ROW(B4)/2,FALSE),“”),并设置填充色为浅蓝作为与学科行的区分。然后选中B4:B5进行复制,再选中B4:BD39区域进行粘贴即可。

现在选中B4单击下拉按钮选择学科,下面的B5单元格就会自动显示上课的教师名,其他单元格也是一样。如此一来安排课程就简单多了吧,只要用鼠标单击选择即可。

3.总课程表限制提醒

编制总课程表时总有各种附加条件限制,比如:一个教师不能同时上两班的同一节课,操场太小全校只能有两班同时上体育课,电脑室只有1间不能有两班同时上电脑课等等。要在排课中兼顾这些要求显然不容易。对此可设置条件格式,让它在违反限制时自动变色提示,事情就简单多了。

选中B4:BD39,在“开始”选项卡中单击“条件格式”选择“新建规则”,在“新建规则”窗口中选择规格类型为“使用公式确定要设置格式的单元格”,并输入公式=AND(COUNTIF(B:B,B4)>1,MOD(ROW(),2)=1)(图3)。再单击“格式”按钮,在弹出窗口中设置字体颜色为红色。确定后,当同一节课中有两班出现同一老师同时,两班中这位老师的名字都会变成红色,你可以及时决定看要更换哪班的课程。

同样再选中B4:BD39设置“条件格式”,但输入的公式改成=AND(COUNTIF(B:B,B4)>2,C1=“体育”),文字颜色改成绿色。即可在同时上体育课超过2班时变成绿色。电脑课的设置公式则是=AND(COUNTIF(B:B,B4)>1,C1=“电脑”)颜色改成蓝色。如果你还有课时等其他限制要求只要像这样继续叠加设置条件格式即可。

注:必须从B4拖动到BD39选中B4:AJBD39,或先选中B4再按住Shift键单击BD39进行选中才行。若你从BD39拖动到B4选中,虽然选中区域相同但条件格式的公式就不同了,得把公式中的B全部改成BD,B4改成BD39。

4.分离教师、班级课程

再来就是要从总课程表中分离出班级、教师的课程了。切换到“班级课程总表”(如图)建立好表格结构。

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(7)

在C2输入公式=OFFSET(总课程表!B$2,ROW()*2-2,)

选中C2复制再选中C2:BE19进行粘贴,即可看到各班的课程总表。

切换到“教师课程总表”工作表中同样设计好表格的行列标题(如图)

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(8)

在A2单元格输入公式:=教师课程表打印!K2

在B2单元格输入公式:=VLOOKUP(教师课程表打印!$K$2,教师与班级!$A$1:$B$100,2)

在C2输入公式:=IFERROR(INDEX(总课程表!$A:$A,MATCH($B$2,总课程表!B:B,0)-1),"")

选中C2复制再选中C2:BE2进行粘贴,即可自动显示教师“课程表打印!K2”单元格老师的周一到周五的课程了。

5.制作教师课程表和班级课程表

首先建立课程表结构(如图),教师课程表同班级课程表的结构是一样的。

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(9)

excel怎么做学生课时表(自动生成任课教师课程表和班级课程表)(10)

切换到教师课程表打印工作表,在C3单元格输入公式:=VLOOKUP(教师课程表打印!$K$2,教师课程总表!$A$1:$BE$2,3),公式的使用方法在前两篇文章中已经作过介绍,不在赘述。

请参阅:

EXCEL制作的通知书,成绩和评语自动填充,方便快捷

EXCEL制作的小升初毕业生登记表,全自动填充,包括照片

在需要排出课程的单元格输入公式:=VLOOKUP(教师课程表打印!$K$2,教师课程总表!$A$1:$BE$2,n),只需要给n赋值就可以了!

类似的切换到班级课程表打印工作表,在C3单元格输入公式:=VLOOKUP(班级课程表打印!$K$2,班级课程总表!$A$2:$BE$19,n),必须根据需要给n赋值,确定该单元格的课程。其他有课程的单元格公式类似。

打印教师课程表和班级课程表前先要设置打印区域,在这两个工作表中选择A1:I17区域,在页面布局→打印区域中设置打印区域。A1:I17以外的区域在打印时不打印。

到此基本算完成制作过程,如果要打印教师课程表,就切换到教师课程表打印工作表,在K2单元格输入该教师在教师与班级工作表中的序号就可以打印出该教师的课程表了。班级课程表的打印方法类似。

6.批量打印教师课程表

输入一个序号打印出一个教师的课程表,有多少名教师需要操作多少次,麻烦。为解决这个问题,请在EXCEL开发工具中插入命令按键,并把下列代码粘贴到命令按钮的单击事件中:

Private Sub CommandButton1_Click()

For i = Range("k6") To Range("k7")

Range("k2") = i

ActiveSheet.PrintOut

Next

End Sub

保存关闭,返回到EXCEL界面。现在就可以批量打印了。

批量打印时,先输入开始序号,再输入结束序号,然后点击批量打印按钮,就按照你设置的序号开始打印。

最后,由于本人水平有限,不妥或需要改进之处,敬请同仁批评指正。

,