大家好,上次课我们介绍了自己用excel做人事管理系统的基础架构部分,今天我们继续介绍基础架构部分的工龄的自动计算、身份证中出生年月的自动提取、年龄的计算
我们先再来设置一下工龄的字段,在输入入职时间以后,大家肯定不想手动输入工龄,我们就可以使用公式自动计算,因为前面入职时间我们设置了录入规范,能够保证录入的正确,那么这里就可以在工龄单元格中,使用以下公式计算工龄。
=IF(G5="","",DATEDIF(G5,TODAY(),"Y"))
公式中的前半部分
=IF(G5="","",
是一个判断语句,G5这里是入职时间的其中一个单元格
这里的意思就是如果没有输入入职时间
那么工龄就显示为空
如果输入了入职时间,那么就执行后半部
,DATEDIF(G5,TODAY(),"Y"))
这里的DATEDIF是一个隐藏的EXCEL函数,可以用来计算两个日期之间相差的日期,这个公式的参数如下,
DATEDIF(开始时间,结束时间,单位:Y表示年,M表示月,D表示日)
开始时间为一个日期,它代表时间段内的第一个日期或起始日期。(起始日期必须在1900年之后)
结束时间为一个日期,它代表时间段内的最后一个日期或结束日期。
最后一个单位参数中,如果你填Y,就是year的意思,他会计算两个日期之间的年份,M表示month,会计算两个日期之间的月份,D表示day,会计算两个日期之间的天数。
为了更好的让大家理解这个参数,我们将入职时间相应的工龄按年、月、日分开显示,如图1,是不是就一目了然了
图1
搞定了入职时间和工龄以后,我们就可以根据合同的有效期,自动计算合同的到期时间,大家先看看效果(图2),输入合同年限以后,就会自动计算出合同的到期时间
图2
下面我们来讲一下这个的实现方式,首先我们来看看到期日期单元格中的公式
=IFERROR(IF(I5="","",DATE(YEAR(G5)+I5,MONTH(G5),DAY(G5)-1)),"")
IFERROR这个函数的是不再公式计算出现异常或者错误的时候,显示指定的信息,他有两个参数
IFERROR(没有错误的时候显示,有错误的时候显示)
在这个公式中,如果出现错误就会将单元格置空。
然后第二个函数if,在讲解工龄计算的时候我们已经说了,这里就不重复了,我们主要讲一下这个部分
DATE(YEAR(G5)+I5,MONTH(G5),DAY(G5)-1)
这个公式中的G5表示G5单元格,I5合同年限单元格,在这里是指向的入职时间的单元格
DATE函数用于根据年月日输出一个日期,DATE(年,月,日)
入职时间的年月日我们就通过YEAR()、MONTH()、DAY()这三个函数来获取,并且在年份后面要加上合同年限(YEAR(G5)+I5),在日后面要减去一天(DAY(G5)-1),计算的结果刚好就是入职时间+合同年限后,再减去一天,这里我们看看效果(图3)
图3
入职时间是2016-03-23 合同年限是5年,合同到期日期就是2021-03-22,是不是很方便呢?
大家用这个方法可以做很多日期的计算,比如货款到期时间、付款时间、提醒时间等等,都可以用以上的知识来自行添加和修改,是不是就更方便了呢!
好了,今天就暂时给大家先介绍到这里,下个教程我们继续讲基础模块的构建,给大家讲一下身份证中出生年月的自动提取、根据提取的出生日期计算年龄,希望大家持续关注我,给我点个赞什么的,我会更有动力的。
下图就是这个表格的成品(图4),如果有朋友想提前下载研究或者使用,请,就可以免费获取了。
图4