用Office Excel制自动考勤表
一、基本框架设置
首先要进行的工作当然就是新建工作簿,在工作表中输入姓名、日期,制订考勤表的基本框架。
1.启动Excel,新建一个工作簿,命名为“员工考勤表”,在工作簿中建立12个工作表。
2.在当月工作表的A1、B1单元格中分别输入“姓名”、“日期”,在A2单元格中输入第1个员工的姓名,接着选择A2、A3单元格,然后单击“合并及居中”按钮将两个单元格合并为1个单元格,按照以上方法录入其他员工的姓名(如图1)。
图 1 Excel新工作簿
3.在单元格C1中输入“7-1”,程序将自动转成“7月1日”(这里假定考勤从7月1日开始)。
用鼠标点选单元格C1,并移动鼠标到单元格的右下角,待出现实心“十”字的填充柄后,按住左键拖动到需要的位置,这样在7月1日后便形成了一个日期序列。
单击日期序列最后的“自动填充选项”智能填充标记,在弹出来的菜单中点选“以工作日填充”项,程序便自动将星期六、日去掉,不记入考勤日期。
或者选中“7月1日”所在单元格,选择“编辑/填充/序列”,在打开的对话框中做如图2所示的设置,点击“确定”按钮。
图2
4.选中整个日期行,在“单元格格式”对话框中点选“数字”选项卡。
在“分类”列表中点选“自定义”项,在类型框中输入“d"日"”,然后单击“确定”按钮。
5.选择“工具/宏/录制新宏”,出现如图3 所示对话框,在“宏名”下面的文本框中输入“返回当前时间”,在活动单元格中输入公式“=now( )”,然后按回车键,接着单击“停止录制”工具栏中的“停止录制”按钮结束录制。
图3 “录制新宏”对话框
二、制作宏按钮
1.单击“视图→工具栏→绘图”菜单项,调出“绘图”工具栏,接着选择“绘图”工具栏中的“绘图→自动靠齐→对齐网格”项。
2.单击“视图→工具栏→窗体”菜单项,调出“窗体”工具栏,然后单击“窗体”工具栏上的“按钮”,接着在单元格B2中拖动鼠标绘制一个按钮,Excel将自动打开“指定宏”对话框,点选其中的“返回当前时间”宏,并单击“确定”按钮(如图4)。
图4 选择“返回当前时间”宏
3.单击按钮,将按钮上的文字更改为“上班”,并对文字大小、字体进行设置。
然后单击“绘图”工具栏上的“选择对象”按钮,单击刚才制作的按钮,点击右键,在快捷菜单中选择“复制”,再次单击“绘图”工具栏上的“选择对象”按钮,使该按钮处于弹起状态,选中B3,点右键在快捷菜单中选择“粘贴”,并将按钮上的文字更改为“下班”。
4.确认“绘图”工具栏上的“选择对象”按钮被选中,单击“下班”按钮,然后按住“Shift”键再单击“上班”按钮,将两个按钮同时选中。
点击右键,在快捷菜单中选择“复制”,再次单击“绘图”工具栏上的“选择对象”按钮,使该按钮处于弹起状态,依次选中B4、B6、
B8、B10、B12、B14,并点右键在快捷菜单中选择“粘贴”。
最后效果(如图5)。
图5 创建“上、下班”按钮宏
三、记录出勤
选中待插入上下班时间的单元格,单击同一行中的“上班”或“下班”按钮即可。
在单击“上班”、“下班”按钮时会返回很长一串数字,其实我们只需输入诸如“13:30”这样的时间即可。
单击“格式→单元格”菜单项,在弹出来的“单元格格式”对话框中点选“数字”选项卡,在分类框中点选“时间”,在“类型”框中点选“13:30”,最后单击“确定”即可。
四、统计结果
1.在日期行之后的单元格中依次输入“迟到”、“早退”、“病假”、“事假”等需要统计的项目。
并将这几列中的单元格上下两两合并,使之对应于姓名行(如图6)。
也可以用宏“合并单元格”实现。
代码如下:
Sub 合并单元格()
For hanghao = 2 To 14 Step 2
quyu_x = "x" & Trim(Str(hanghao)) & ":" & "X" & Trim(Str(hanghao + 1))
Range(quyu_x).Select
Selection.Merge
quyu_y = "y" & Trim(Str(hanghao)) & ":" & "y" & Trim(Str(hanghao + 1))
Range(quyu_y).Select
Selection.Merge
quyu_z = "z" & Trim(Str(hanghao)) & ":" & "z" & Trim(Str(hanghao + 1))
Range(quyu_z).Select
Selection.Merge
quyu_aa = "aa" & Trim(Str(hanghao)) & ":" & "aa" & Trim(Str(hanghao + 1))
Range(quyu_aa).Select
Selection.Merge
Next hanghao
End Sub
图6 创建相关统计项目
2.单击单元格X2,然后键入公式“=COUNTIF(C2:W2,">8:30")”(这里假设上班时间为8:30),并按回车键,X2单元格中便会出现选中员工所有迟于8:30上班的工作日天数。
同理在Y2单元格中输入公式“=COUNTIF(C3:W3,"<17:00")”(假设下班时间为17:00),并按回车键,Y2单元格中便会出现选中员工所有早于17:00下班的工作日天数。
3.单击Z2单元格输入公式“=COUNTIF(C2:W3,"事假")”,并按回车键确认,Z2单元格中便出现了选中员工本月的事假次数。
4. 单击AA2单元格输入公式“=COUNTIF(C2:W3,"病假")”,并按回车键确认,Z2单元格中便出现了选中员工本月的病假次数。
5.其他人的统计方法可以利用Excel的公式和相对引用功能来完成。