excel制作动态考勤表,掌握各种日期函数
在工作中常用到考勤表,那么如何做一份考勤表,可以每个月都使用呢,那么就需要让考勤表的表头动态生成日期和星期,我在几期视频中也讲过,但总觉讲的不太清楚,那么今天就用图文的形式来说明下。
动态考勤表的核心就是一连串的日期函数,尤其是today函数,是实现动态考勤表的核心,其他的还要使用到文本连接符&,还有日期函数year,month,day。过程呢很简单,我们先来说这几个函数的用法。
today(),返回当前的日期。比如今天是2020年8月4日,那么在单元格输入=today(),就返回2020-8-4,如果到了明天,你再打开就是2020-8-5,打开考勤表或者按F9刷新,就能看到变化。
year(日期):返回当前日期的年部分。
month(日期):返回当前日期的月部分。
day(日期):返回当前日期的日部分。
1.生成考勤表动态标题
函数解读:
=TODAY() 获取当前的日期
=YEAR(D5) 获取日期的年部分
=MONTH(D5) 获取日期的天部分
=D6&"年"&D7&"月考勤表" 使用&连接符将几部分拼接到一起。
2.获取最大天数
要动态生成日期,因为每个月有28天,30天,或者31天,所以要生成日期,必须判断一个月的最大天数,而excel中并没有提供获取一个月最大天数的函数,如果我们能获取到下一个月的第一天,那么减去1,就是当月的最大天数。
函数解读:=DATE(D6,D7+1,1)
date函数的三个参数分别为年月日,在月的部分我们+1,就转化成了下一个月,第三个参数是1,就是一个月的第一天。
=D9-1 用获取的日期减去1,就是当月的最后一天。
然后=DAY(D10),获取到了天数。
3.根绝列号生成天
函数解读=COLUMN(B:B)-1
COLUMN(B:B) 返回B列的列号,因为是第二列,所以减去1,然后向右拖拽即可生成1-31的天数,这里有一个问题,最大是31天,最小是28天
所以我们使用COLUMN(B:B)-1和最大天数对比,如果小于最大天数,就正常显示日期,如果大于就显示空值。
4.生成表头
公式解读:=IF(COLUMN(B:B)-1<=$D$11,COLUMN(B:B)-1,"")
向右边拖拽31天即可。不月份不是31天的时候,比如28天,那么后三列显示为空。
5.生成星期数据
公式解读:=DATE($D$6,$D$7,B3)
使用date函数生成日期。然后在设置单元格格式中设置为显示星期的形式。这样表头就直接动态起来。以上呢就是动态考勤表的生成过程。
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/12872.html