编按:哈喽,大家好!平时我们总是需要计算各种到期时间,例如合同到期日、员工转正日期、产品有效期等等。大家普遍的做法是用DATE函数计算,但是DATE函数的计算公式实在是太繁琐了,有没有更简单的公式呢?当然是有的啦!用EDATE就行啦~ —————————— 平时的工作中,经常会遇到计算职工转正日期、合同到期日、职工退休日期以及产品有效期截止日等等与日期有关系的问题。这些问题看似复杂,实际上只需要一个很简单的函数就能搞定,这个函数就是EDATE。今天分享EDATE函数的几个应用实例,希望对大家有所帮助。 实例1:计算员工转正日期 下图是某公司的新入职员工登记表,入职三个月即可转正,要根据入职日期计算出转正日期。 没有对比就没有伤害,先来看看不会EDATE函数的伙伴是怎么写公式的: =DATE(YEAR(D3),MONTH(D3)+3,DAY(D3)) 而用EDATE函数的公式是这个样子的:=EDATE(D3,3),是不是很简单? EDATE函数只需要两个参数,开始日期和间隔月数。 公式=EDATE(D3,3)的意思就是D3单元格中的日期三个月后所对应的日期。 实例2:计算合同到期日 如图所示,需要根据每个人签合同的日期与合同期限,计算出对应的合同到期日,使用EDATE函数同样非常容易就能计算出结果。 公式:=EDATE(D3,E3*12)-1 与第一个例子不同的是,本例中要计算的不是3个月后的日期,而是若干年后的日期。因为EDATE只能按月进行计算,所以需要将E列中对应的年份乘以12变成月数,才能得到正确的结果。 实例3:计算职工退休日期 如图所示,根据性别和出生日期计算退休日期,男性满60周岁,女性满55周岁即可退休。 公式:=EDATE(C3,IF(B3="男",60,55)*12) 在这个例子中,要根据性别判断退休年龄。如果为男性,退休年龄是60,退休日期就是出生日期60年之后的日期;同理,如果为女性,退休年龄是55,退休日期就是出生日期55年之后的日期。 首先要用IF函数判断每个人退休的年龄,IF(B3="男",60,55)这部分很容易理解,若单元格B3的值等于男性返回60,否则返回55。 接着使用实例2的方法,将IF函数得到的年数结果乘以12转换为月数后,再用EDATE函数得到退休日期。 实例4:计算产品有效期截止日 如图所示,根据每个产品的生产日期和保质期,计算出产品有效期。 公式:=EDATE(B2,IF(RIGHT(C2,1)="年",LEFT(C2,1)*12,SUBSTITUTE(C2,"个月","")*1))-1 本实例的难度在于保质期不是规范的数字,而且有年和月两种形式。下面简单分析一下IF这部分的思路。 RIGHT(C2,1)="年"这部分的作用是使用RIGHT函数将C列单元格最右边一个字提取出来,判断保质期按年计算还是按月计算。如果是年的话,就用LEFT将年数提取出来再乘以12转为月数,也就是LEFT(C2,1)*12。 (注:这个思路是考虑到正常情况下保质期不会有超过10年的情况,所以提取最左边的1位就是年份,如果年份有两位数的,就需要换其他思路了。) 如果不是按年计算的,就需要将月数提取出来。提取月数的思路有很多,本例使用了替换函数SUBSTITUTE,将单元格中的"个月"二字替换为空(相当于删除)。用SUBSTITUTE函数得到的值是文本型的,所以需在后面*1将文本数字转为数值。 最后再用EDATE函数计算出产品的保质期。 通过以上四个例子,大家对于这个函数的用法应该比较清楚了,重点是如何根据实际问题得到第二参数(月数),有时候可以直接使用表格中的数据,有时候需要借助其他函数才能获得需要的月数。 最后要说明的一点就是,这个月数可以是负数,表示求指定日期之前几个月的日期。