制作一个员工考勤表,包含年月日星期的所有内容
如图所示

1.制定年
先确定年,这里以2019,2020,2021三年为例
选择单元格–数据–数据验证
序列–来源–2019,2020,2021
显示结果如下
2.制定月
也是同样的道理
效果如下
3.制定日
每年的每个月多少填都是变化的,如何制作来确定每个月有多少天呢,这里的话就需要用到我们之前学到的内容了
不知道大家是否还记得前面**5.Excel日期时间函数类应用**的内容了,不懂的可以回去看一下,这里就不重复介绍了
先上代码 =IF(H25<DAY(EOMONTH(DATE($N
23
,
23,
23,P$23,1),0)),H25+1,"")
思路注释:
首先判断当前单元格地址是否小于当月的最后一天,采用IF判断格式,第一步采用 eomonth函数获取函数当月的最后一天日期,格式为eomonth(A1,0)(0表示当前月,1表示下一个月)。 如何获取最后一天呢 (A1)?这里就得采用第二步了,第二步利用上面提供的年月可以确定当前单元格是哪一年哪一月,即date函数获取标准的日期格式,格式为date(年,月,日),这里不需要具体的几号,直接默认填1号,所以date(年单元格,月单元格,1),这样就获取了当前的年月日了,第三步当前单元格小于最后一天时就默认加一,否则就输出空格。补充一点,这里行和列都需要固定,不然会报错。固定单元格行与列。
=IF(H25<DAY(EOMONTH(DATE($N 23 , 23, 23,P$23,1),0)),H25+1,"")
4.制定星期
如何确定当前单元格是星期几,这个需要用到weekday函数了
首先获取当前的年月日,这个上面都已经提供出了信息,直接用就好了,采用date 函数,获取标准的日期格式,格式为date(年,月,日),代码为DATE($N$23, $P$23,H25)
第二步的话获取星期几,这里采用weekday函数,标准为weekday(A1,1)(1是国外标准,2是国内标准,这里采用国外标准),后面需要用得到
完整代码如下
=IF(H25="","",WEEKDAY(DATE($N 23 , 23, 23,P$23,H25),1))
思路解析:
判断当前单元格是否为空格,是空格输出空格,不是空格输出为星期几
然后就出现数字星期几了,这里还得修改一下显示方式,选中单元格,点击右键设置单元格格式
类型改为aaa
效果如下,星期就改成好了
完整的考勤表如下
5.颜色设置
选定区域,点击条件格式–新建规则
先筛选星期六,列不固定行固定采用**=H$24=7**
效果如下
同理,星期天的话是 =H$24=1
空白区域的话是 =H$24=""
6.出勤率
=COUNTIFS($ H $ 24: $ AL $ 24,"<7", $ H $ 24:$AL$24,">1",H26:AL26,">=8")
7.病
=COUNTIF(H26:AL26,“病”)
8.事
=COUNTIF(H26:AL26,“事”)
9.平时加班
=SUMIFS(H26:AL26,$H
24
:
24:
24:AL
24
,
"
<
7
"
,
24,"<7",
24,"<7",H
24
:
24:
24:AL$24,">1")-B26*8
10.周末加班
=SUMIF($H
24
:
24:
24:AL$24,1,H26:AL26)+SUMIF( $H $ 24:$AL$24,7,H26:AL26)