在excel中dated if函数怎么用(EXCEL中的时间函数DATE和DATEDIF)
朋友们,大家好!
在日常工作中,我们经常用EXCEL函数处理表册,函数的运用,大幅度提升了我们的工作效率。笔者集合工作实际,把最常用的EXCEL函数进行逐一详细讲解,课程中有大量案例,为便于朋友们更加深入了解各个函数的用法,将于每天上午7:00同步发布视频教程和图文教程(包含公式)。只要不懈努力和不断实践,通过30天的系统学习,你也能成为EXCEL函数高手,从此告别加班,让同事和朋友刮目相看。
今天,我将和大家一起分享时间函数DATE和DATEDIF,广泛运用在计算每月天数、计算工龄、计算周岁等领域。
一、DATE函数基础知识
(一)DATE函数定义
DATE函数是指返回代表特定日期的序列号,如果在输入函数前,单元格格式为“常规”,则结果为日期格式。
语法:DATE(年,月,日)
年(YEAR):为1~4位的数字,并且要大于或者等于1900,EXCEL根据计算机使用的日期系统解释该参数。默认情况下,EXCEL使用1900日期系统,这意味着第一个日期是1900年1月1日。
如果该参数位于0~1899(包含这两个数)之间,则EXCEL会将该值加上1900,再计算年份。例如:DATE(121,1,1)返回2021年1月1日(1900 121)。如果该参数位于1900到9999(包含这两个数)之间,EXCEL将使用该数值作为年份。例如:DATE(2021,1,1)将返回2021年1月1日。如果该参数小于0或大于等于10000,EXCEL将返回错误值#NUM!。
月(MONTH):1~12之间的数字。如果大于12,将从下年度的一月份开始往上累加计算。例如:DATE(2021,14,1)返回代表2022年2月1日的序列号。如果小于0,将从指定年份前一年的12月份开始往下减去相应的月份数。例如:DATE(2021,-2,1)返回代表2020年10月1日的序列号。
日(DAY):1~31天之间的数字。如果大于该月份的最大天数,将从指定月份下个月的第一天开始往上累加。例如:DATE(2021,1,35)返回代表2021年2月4日的序列号。
(二)DATE函数案例实践
1.通过身份证号码提取出生日期并转换为标准日期
某单位在制作职工基本信息表的时候,已经输入了身份证号码,还需要填写出生日期,为了实现快速输入,需要一次性从身份证号码中提取出生日期并转换为标准日期格式,前几节课讲过用TEXT函数进行转换,本例还可以使用DATE函数进行转换。
在C3单元格中输入公式:=DATE(MID(B3,7,4),MID(B3,11,2),MID(B3,13,2)),按回车键即可通过身份证号码提取出生日期并转换为标准日期。见下图:
DATE函数可以将代表年月日的数字转换为日期序列号,如果输入公式前单元格格式是常规格式,该函数会默认以标准日期格式显示计算结果。
本例也可以使用文本连接符&将提取的年月日连接起来,虽然这样连接起来的日期中的月份和天数都是两位数,但是EXCEL依然会将其视为日期,其公式可写成:=MID(B3,7,4)&"-"&MID(B3,11,2)&"-"&MID(B3,13,2)。
2.计算指定月份的天数
某单位每月都要对周末和节假日排班,因为每个月的天数略有不同,现在需要用EXCEL制作一个公式,要求该公式能够返回当月的天数,并且能够随着时间的变化而变化。
需要知道某月有多少天,一般的方法是先判断该月是大月份还是小月份,如果是大月,该月就是31天;如果为非2月份的小月,则为30天;如果是2月份,还要判断该年是闰年还是平年,闰年则2月份有29天,平年则有28天。如果在EXCEL中用该方法计算当月的天数,写成的公式就会显得很复杂。但是因为每个月的最后一天就是该月的天数,所以只要知道了该月的最后一天,就可以知道该月的天数,可以通过EXCEL中日期函数的自动进位功能来实现。
在B3单元格中输入公式:=DAY(DATE(YEAR(A3),MONTH(A3) 1,0)),按回车键即可得到A3单元格指定的月份天数。见下图:
日期函数之所以具有自动进位的功能,这和EXCEL使用日期序列号记录日期有着很大的关系,当DATE函数第三个参数设置为0的时候,相当于该月第1天的前一天,即上个月的最后一天。
本例中,YEAR(A3)是指A3单元格的年度,MONTH(A3)是指A3单元格的月份,因为第三个参数0指的是上个月的最后一天,所以要 1将月份指定为当前月份,然后将YEAR(A3)、MONTH(A3) 1和0作为DATE的三个参数,最后用DAY函数得到天数。
二、DATEDIF函数基础知识
(一)DATEDIF函数定义
DATEDIF函数是指返回两个日期之间的年\月\日间隔数,常使用DATEDIF函数计算两日期之差,时间单位包含D,M,Y,YD,YM,MD。
语法:DATEDIF(起始日期,结束日期,时间单位)
起始日期:必需参数,表示给定期间的第一个或开始的日期。日期值有多种输入方式:包括带引号的文本字符串、序列号或其他函数的结果等。
结束日期:必需参数,代表时间段内的最后一个日期或结束日期。
时间单位:必需参数,是指为“起始日期”和“结束日期”返回时间单位的代码。
"Y"表示两个日期以“年”为单位的时间间隔。
"M"表示两个日期以“月”为单位的时间间隔。
"D"表示两个日期以“日”为单位的时间间隔。
"MD"忽略“年”和“月”后,两个日期以“日”为单位的时间间隔。
"YD"忽略“年”后,两个日期以“日”为单位的时间间隔。
"YM"忽略“年”,两个日期以“月”为单位的时间间隔。
(二)DATEDIF函数案例实践
1.根据身份证号码计算周岁
在工作中,我们经常会利用身份证号码提取出生日期,同时会计算年龄,通常用当前年数减去出生年进行计算,但是这样计算出来的结果并不是真正的年龄,比如相差一个月按一年计算。本例中用DATEDIF函数,通过身份证号码计算周岁。
在C3单元格中输入公式:=DATEDIF(TEXT(MID(B3,7,8),"0000-00-00"),TODAY(),"Y"),按回车键即可根据身份证号码计算周岁。见下图:
本例中,用MID(B3,7,8)从身份证号码中提取出生日期,然后用TEXT将出生日期转换为标准日期格式,作为DATEDIF函数的第1个参数“起始日期”,然后用TODAY()得到当前日期作为第2个参数,用"Y"作为第3个参数即可得到周岁。
2.根据工龄计算职工公休的天数
某单位每年安排职工公休,规定工龄不足5年享受5天公休假;工龄20年以下享受10天公休假;工龄20年以上享受15天公休假,现在需要计算每位职工每年的公休假天数。
在C3单元格中输入公式:=DATEDIF(B3,TODAY(),"Y"),计算出工龄,在D3单元格中输入公式:=IF(C3<10,5,IF(C3<20,10,15)),按回车键即可根据工龄计算出每年的公休假天数。见下图:
本例中,利用辅助列C列计算出工龄,然后用IF函数进行判断,这样写成的公式容易理解。如果不用辅助列,公式可写成:=IF(DATEDIF(B3,TODAY(),"Y")<10,5,IF(DATEDIF(B3,TODAY(),"Y")<20,10,15)),公式相对要长一些,新手不容易理解,建议使用辅助列辅助计算。
3.计算精确到月份的职工工龄
计算职工的工龄,其实就是计算职工参加工作的时间和当前时间之间的日期间隔,使用DATEDIF函数就可以解决这样的问题。
在D3单元格中输入公式:=TEXT(DATE(0,DATEDIF(C3,TODAY(),"M"),1),"y年m月"),按回车键即可计算出精确到月份的职工工龄。见下图:
本例中,使用DATEDIF(C3,TODAY(),"M")计算出工龄的总月数,然后用DATE将代表年的0、DATEDIF计算的月份数和代表每月1日的1转换为日期,最后用TEXT函数将显示格式转换为年和月。
以上就是日期函数DATE和DATEDIF的基础知识和经典案例,想要学习好EXCEL函数,要学会多个函数的组合,后续课程中我们会讲到多函数结合的用法,能进行更为复杂的计算,对提升工作效率有很大帮助。
个人建议:在学习EXCEL函数时,首先要熟悉函数的功能和语法,尽量多写,通过反复书写和实践,对照文中的案例,举一反三,我相信,你的EXCEL技巧会得到快速提升,日积月累,必成大器!
感谢朋友们的支持,如果你有好的意见建议和问题,欢迎在评论区留言交流,期待你的精彩!
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com