EXCEL总课表自动生成教师个人课表
使用EXCEL快速制作学校总课表,利用EXCEL函数强大的功能自动生成班级课表和教师个人课表。
关于自动生成班级课表,拙文《让EXCEL排课飞起来》已有介绍,本文介绍从总课表生成教师个人课表,算是对前文的一个补充。
网络上关于EXCEL总课表自动生成教师课表的文章不多,有些太过繁复,有些语焉不详,有些太过苛刻涉及到自定义函数,有些触及到word的邮件功能,作者觉得当然可取,然而从操作简便的角度看,利用MA TCH、INDEX查函数和IFERROR逻辑判断函数生成教师课表为作者看好。
MATCH的基本语法形式是MA TCH(需要查的匹配值,查区域,匹配方式),INDEX 是基本语法是INDEX(查区域,行,列),IFERROR(是否存有错误的参数,计算错误时返回指定的值)。
1、新建EXCEL2007工作薄,打开文档将sheet1取名总课表,sheet2取名教师花名册,sheet3
b总001取名教师课表。导入总课表数据。
2、总课表的样式
使用MA TCH函数和INDEX函数制作教师课表对总课表的样式没有要求,它们不像VLOOKUP()和HLOOKUP()分别以列和行为基准查,所以常规以及特殊样式的总课表都能够完成。本文操作以如下总课表为准。
3、教师花名册务必置放在一列之中,如A2:A50
4、教师课表的样式
其中 B5为课程名称,B6为任课班级。
5、制作下拉菜单和教师课表
A、在“教师课表”工作表中选中B2单元格,点选数据——数据有效性——序列,在
其下的“来源”框中输入:=教师名单!A2:A50,确定。
B、在B5单元格(星期一第一节)中输入如下函数:=IFERROR(INDEX(总课
表!$A:$AN,MA TCH($B$2,总课表!B$2:B$111,0),COLUMN()),""),用自动填充柄拉至I5单元格(即星期五第八节),接着选中B5单元格用自动填充柄拉至B6单元格,将COLUMN()改成1,B6单元格函数如下:=IFERROR(INDEX(总课表!$A:$AN,MATCH($B$2,总课表!B2:B111,0),1),"")
在B7单元格中输入:=IFERROR(INDEX(总课表!$A:$AN,MA TCH($B$2,总课表!J$2:J$111,0),COLUMN()+8),""),用填充柄向右拉至I7单元格,向下拉至B8单元格,并把B8单元格中COLUMN()+8改成1
在B9单元格输入=IFERROR(INDEX(总课表!$A:$AN,MATCH($B$2,总课表!R2:R111,0),COLUMN()+16),"")
B11单元格输入:=IFERROR(INDEX(总课表!$A:$AN,MATCH($B$2,总课表!Z2:Z111,0),COLUMN()+24),"")
B13单元格输入:=IFERROR(INDEX(总课表!$A:$AN,MA TCH($B$2,总课表!AH2:AH111,0),COLUMN()+32),"")
在B13单元格输入:=IFERROR(INDEX(总课表!$A:$AN,MA TCH($B$2,总课表!AH2:AH111,0),COLUMN()+32),"")
重复B5、B6单元格同样的操作,即分别向右和向下自动填充,并把B10、B12、B14单元格中COLUMN()+16、COLUMN()+24、COLUMN()+32修改成1
如图
可点击菜单中“公式”——“显示公式”查看
6、在B2单元格中选中某位老师,即自动生成该老师的课表,如图
7、制作思路
A、用MA TCH函数定位B2单元格中教师在总课表中的行值,星期一第一节在总课表
B列中查,第二节在总课表C列总查,依此类推,星期五第八节在A0列中查。
B、用INDEX()函数将查到的值显示在教师课表单元格中,以图4中张吉红老师星
期二上午第二节课程为例,其函数是:=IFERROR(INDEX(年度总总课
表!$A:$AN,MATCH($B$2,年度总总课表!K$1:K$30,0)-1,COLUMN()+8),"")
MATCH($B$2,总课表!B$2:B$100,0)查到张老师星期三的姓名“张吉红”在总课表
中R列K2:K111区域中的14行,INDEX()函数查范围是$A:$AN,所以INDEX ()显示的是第13行K列(10列,用“COLUMN()+8”表示。Column()函数显示的是课表中的当前列,B13单元格的当前列是2,加上8即为K所在的10列)的“英语”。
C、由于课程所在行的第一列是班级名称,所以生成班级的函数的列数都是1.
D、如果在教师课表中增加行,课表不会变,如果增加列,课表会出现错误,因为那样
会改变COLUMN()的值从而不能和总课表中的列对应;如果改变了总课表行和列的数目,课表会出现错误,因为MA TCH()所查的行值和COLUMN()、COLUMN()+8、COLUMN()+16、COLUMN()+24、COLUMN()+32等所查的列值是根据总课表星期一至星期五所有节次所在的行和列决定的。所以,如果总课表增加了行或列,教师课表中MATCH查的范围和COLUMN()的列值要相应改变。
E、本人水平有限,总课表增加行数和列数,教师课表增减列数的不变应万变的函数表
达式尚不能勘破,诚望此中人指点。
什邡市禾丰中学
黄仲文戴怀金
电话:186********
邮箱:hzw186********@163