先说一下考勤表日期的设置,这里使用的是DATE函数。1日这里的公式是“=DATE(C3,E3,1) ”。

DATE函数括号里有3个参数,第1个参数是年,范围在1904-9999之间。第2个参数是月,范围在1-12之间。第3个参数是日,范围在1-31之间。

考勤表中前面二个参数,我们引用考勤月份这一列中的年跟月,日就直接写数字1。最后出来的结果是标准的日期格式,2013/3/1。

按 CTRL 1快捷键,设置单元格格式–数字–自定义–类型–输入“d”, 日期这里就变成了1。

2日这里设置成前面的日期 1,然后往后拖动填充,直到31日。

但是,这里有一个问题,当我们把考勤月份改成2月份的时候,后面三列显示的日期,其实已经是3月份的了。

虽然这并不影响使用,但追求完美的李老师还是觉得这样不美观,每个月的天数最好按实际显示,不满31天的月份,后面多出来的列,最好显示为空。

在29日这里,我们用到一个MONTH函数,外面嵌套一个IF判断函数。“=IF(MONTH(AD4)=MONTH(AD4 1),AD4 1,””) ”

前面设置日期的时候,我们就已经知道,日期这一行的每个表格是有完整的年月日,MONTH函数的作用就是提取这个表格里的月份。用IF函数判断这个表格里的月份跟下个表格里的月份是不是相等,如果成立,就在前面的表格的日期上再 1,如果不成立,就为空。

我们从图4可以得知,当月份为2月的时候,28日后面的单元格是3月1日,所以这二个提取的月份是不相等的,后面的表格就变成了空。

我们用拖动的方法填充后面二个单元格的时候,出现了报错。查看公式的时候发现,MONTH函数是从本单元格跟前面一个单元格提取月份来判断的,而前面一个单元格已经是空,没办法提取,所以会报错。

解决的办法就是改一下公式,还是从28日这个表格提取月份来判断。“=IF(MONTH(AD4)=MONTH(AD4 2),AD4 2,””) ”

或者用IFERROR函数,如果报错就为空。“=IFERROR(IF(MONTH(AF4)=MONTH(AF4 1),AF4 1,””),””) ”

日期的设置讲解完毕。这一篇的内容里的每个字每句话都是想了又想再敲出来,生怕自己浅薄的理解不能把各个函数的应用讲解清楚明白。


更多Excel相关技巧,请:效率宝典

我,我们一起学习,共同成长!

如果有什么问题或意见,欢迎给我留言,工作中有什么困难或Excel使用问题,也可以留言咨询,我将一一为你解答。