日常工作中,我们经常会遇到已知开始日期和相隔的天数,月数,年数,求结束日期。
例如,新员工转正日期,劳动合同到期日,员工退休日期,项目结束日期,结婚纪念日等等。
今天就跟大家分享几个函数,可以快速,准确计算出结束日期。
(Date,Edate,Workday与Workday.intl函数等)
一.直接相加法
开始日期+间隔天数=结束日期
注意公式中所有字符全部为英文字符,输入汉语字符会出错。
二.Date函数(常用)
Date函数的基本构型是Date(year,month,day),其作用是将提取的数字变为日期格式进行显示。
Date函数计算新员工转正日期:
新入职的员工一般要经过三个月的试用期,通过了相关考核后才可以转正。
一般情况下,要在转正日期之前,公司要给员工试用期考核结果,来确定是否转正。
三.Edate函数(常用)
Edate函数的功能是计算某个日期前后指定月数的日期序列号。简单的说就是返回一段日期,从指定起始日期之前或之后的日期。
语法结构:Edate(start_date,months)
公式:=Edate(起始日期,月数)。
参数说明:
start_date:表示起始日期的日期。
months:表示start_date 之前或之后的月份数。
注意事项:
起始日期不是有效日期,则返回错误值 #VALUE!;months参数,可以是正也可以是负。月数为正,表示未来日期;月数为负表示过去日期。如果不是整数,将去尾取整;
四.Workday函数(常用)
此部分已经在之前讲过了。所以就简单陈述一下。
Workday用于从起始日期开始的多少天对应的工作日,排除了周末和专门的节假日。
功能:返回某天后的日期。
语法:Workday(start_date,days, [holidays])
公式:=Workday(起始日期,工作天数,[需要排除的节假日日期])
参数:
Start_date:必需。代表开始日期。
Days:必需。代表start_date 之前或之后不含周末及节假日的天数。
注意:Days 为正值时,生成未来日期;为负值时,生成过去日期。
Holidays:可选。是一个可选列表,包含需要从工作日历中排除的一个或多个日期。
(1)比较: Networkdays & Workday
a .与 Networkdays 的参数一致,
即:Workday函数也是只计算工作日,计算的时候会自动去掉周末。
b .与 Networkdays 的区别:
Networkdays的结果是两个日期之间的天数;
Workday的结果是一个具体的的日期。
(2)实例
五.Workday.intl函数
Workday.intl函数是Workday函数的延伸,比Workday只多了一个自定义参数weekend。它可以完成Workday函数所能完成的所有计算。
不同于Workday函数,Workday.intl函数可以更为灵活地设置工作日安排,不用再拘泥于周六、周日双休这种工作安排。
功能:返回指定的若干个工作日之前或之后的日期的序列号(使用自定义周末参数)。
周末参数指明周末有几天以及是哪几天。 周末和任何指定为假期的日期不被视为工作日。
语法:Workday.intl(start_date,days,[weekend],[holidays])
公式:=Workday.intl (起始日期,指定几个工作日,[自定义周末的规则],[要排除的节假日])
参数:
Start_date :必需。 开始日期(将被截尾取整)。
Days : 必需。 Start_date 之前或之后的工作日的天数。
正值表示未来日期;负值表示过去日期;零值表示开始日期。 Day-offset 将被截尾取整。
Weekend : 可选。 表示一周中哪些天是工作日和哪些天是非工作日。
Weekend 是一个用于指定周末日的周末数字或字符串。(跟Networkdays.int函数的第三个Weekend函数用法一样)
① weekend是指定周末日的周末数字:(如下图)
1-7:代表一周哪两天休息
11-17:代表一周仅哪一天休息
②weekend也可以是周末字符串值。
长度为七个字符,并且字符串中的每个字符表示一周中的一天(从星期一开始)。
1 表示非工作日,0 表示工作日。 在字符串中仅允许使用字符 1 和 0。使用 1111111 将始终返回 0。
>>>自定义工作
Holidays :可选。代表要被排除的非工作日; 一组可选的日期,表示要从工作日日历中排除的一个或 多个日期。
holidays 应是一个包含相关日期的单元格区域,或者是一个由表示这些日期的序列值构成的数组常量。 holidays 中的日期或序列值的顺序可以是任意的。
注意事项:
(1)请确保start_Date是一个工作日,否则计算结果会存在出入。
(2)如果days输入的不是一个整型的数字,那么它会被进行截尾取整;
days输入一个负数,从而实现根据已知结束日期,计算出开始日期。
(3)weekend参数以字符串形式表达时,必须至少有一个0,也就是说这个字符串不能是“1111111”。
总结:
当相隔的是固定的天数时,求结束日期,用Date函数或直接相加减法。
当相隔的是固定的年数,月数时,求结束日期,用Date函数或Edate函数。
当相隔的是工作日天数,求结束日期,用Workday或Workday.intl函数。