DATEDIF函数,看看你的Excel里有没有?

Excel中有一类函数叫隐藏函数,你在Excel的函数列表里是找不到它们的身影的,甚至连微软的帮助文件里也没有相关说明,但是它们不但功能强大,而且在工作中应用广泛。
DATEDIF就是一个神奇的隐藏函数,它存在于Excel中,但是在Excel的帮助文件中却找不到它。
今天我们就来扒一扒这个神奇的隐藏函数。


1

DATEDIF函数详解
DATEDIF的基础语法为:
 DATEDIF(开始日期,结束日期,间隔类型)  

其中,参数start_date和end_date是两个日期,并且前者一定不能大于后者。
unit有以下6个参数,分别用来计算不同的差异,如下表所示。
DATEDIF的参数
在日常拼写中,有的人会漏写函数名称中间的D,变成DATEIF,这是错误的,而且输写错误时,Excel系统不会提示。
此函数单词有一个简单的记忆方式:DATEDIF缩写于Date Different,译为不同的日期。

2

计算两个日期间的年、月、日间隔
如下图所示,这是DATEDIF的常规用法,这6个参数的实际意义,我们可以结合图中的数据进行讲解。

DATEDIF常规用法

首先,在D16、D24单元格中分别输入以下公式,向下分别复制到D21、D29单元格,以计算出不同参数的差异:
 =DATEDIF(E16,F16,C16)  
 =DATEDIF(E24,F24,C24)  
D24单元格,参数“Y”,单看2017年和2020年,相差年数应为3,但是从2017/7/28到2020/2/8,先过2年到2019/7/28,还没到要求的2020/2/8,再过1年的话,就到了2020/7/28,会超过结束日期,所以其结果返回2,不能返回3。
D25单元格,参数“M”,2017/7/28过30个月便到了2020/1/28,然后再过1个月就到了2020/2/28,超过了结束日期2020/2/8,所以结果只能为30,不能为31。要充分体会“整年数”“整月数”中“整”字的意思。
D26单元格,参数“D”,就相当于两个日期直接相减,计算天数的差。
D27单元格,参数“MD”,这个计算忽略月和年,相当于把start_date拉近到end_date 前最接近的日期。也就是说,将2017/7/28拉近到2020/2/8之前日期为28的最接近日期,即2020/1/28,然后计算2020/1/28与2020/2/8之间的天数差,即11天。
D28单元格,参数“YM”,忽略日和年计算整月数,即相当于把2017/7/28拉近到 2020/2/8之前最接近的7月28日,变成2019/7/28,然后计算其与2020/2/8之间的“整”月数差,即6个月。
D29单元格,参数“YD”,忽略年计算天数差,相当于把start_date拉近到end_date前最接近的相同月和相同日的日期。也就是说,将2017/7/28拉近到2019/7/28,然后计算2019/7/28与2020/2/8之间的天数差,即195天。 
在使用“MD”“YD”参数计算天数差时,由于闰年的存在,有时会与理想值相差一天,这种情况一般不会影响我们的日常使用。

3

整年、月、日区别
如下图所示,列出了2017/7/28到2020/7/27与2017/7/28到2020/7/28的对比,虽然end_date只差了1天,但是结果有比较大的差异。计算原理相同,要体会“整”字的含义。

整年、月、日区别

这么多参数需要怎么记忆呢?首先要知道这个函数的作用,理解每一个参数的计算原理。如果工作中常常需要计算日期,可以将其打印出来,贴在桌子旁即查即用。

4

案例:工龄计算
假定今天是2019/7/28,每个员工参加工作的日期如下图中C列所示,那么每个人的工龄是多少呢?工龄可表示成m年n个月的形式。

工龄计算

可以分步进行操作。首先计算“整年”数,然后计算“整月” 数。计算月数时需要注意,月数的值最大不会超过11,因为到12个月就是1年了,即要忽略年份的存在来计算月数。那么使用哪个参数计算呢?

从上一节讲的DATEDIF的参数对照表中可以看到,计算整年数使用参数“Y”,而忽略年计算整月数使用“YM”。于是D51单元格的函数公式可以写成:
左右拖动查看完整公式
=DATEDIF(C51,"2019/7/28","Y")&" 年 "&DATEDIF(C51,"2019/7/28","YM")&" 个月 "
我们看一下D54:D56单元格区域,仅相差1天,计算结果便不同。所以使用DATEDIF时,始终要有一个“整”的概念在脑海中。
另外,DATEDIF中的Y、M、D参数,大小写均可以。

5

案例:年假天数计算
《职工带薪年休假条例》规定,职工累计工作已满1年不满10年的,年休假为5天;已满10年不满20年的,年休假为10天;已满20年的,年休假为15天。
同样,假设今天是2019/7/28,那么每名员工的年休假天数分别为多少天呢?
其实这个题目比上一节的案例更简单,只需知道每名员工参加工作的年数即可。
如下图所示,在D66单元格中输入以下公式,计算出每名员工的工作年数:
 =DATEDIF(C66,DATE(2019,7,28),"Y")  

年假天数计算
在这里再次强调,如果在公式中使用快捷输入的方式表达日期,必须加双引号,如上节中的“DATEDIF(C51,"2019/7/28","Y")”,如果掌握不了双引号使用,就规规矩矩地使用DATE函数,保证不会出错。
根据D列的年数,可以计算法定年假的天数,在E66单元格中输入以下公式:
 =LOOKUP(D66,{0,1,10,20},{0,5,10,15})  

好了,今天的内容就是这些,如果你有兴趣,也可以自己尝试做一做练习。

作者:翟振福
标签:
iexcelhome
Excel之家ExcelHome 微信号:iexcelhome 扫描二维码关注公众号
优质自媒体

小编推荐

  1. 1 烧卖的做法家常简单(烧卖怎么做最好吃)

    大家好,小豪今天来为大家解答烧卖的做法家常简单以下问题,烧卖怎么做最好吃很多人还不知道,现在让我们一起来看看吧!1、准备食材:烧麦饼

  2. 2 桃红和玫红哪个显白(玫红色和桃红色口红)

    大家好,小豪今天来为大家解答桃红和玫红哪个显白以下问题,玫红色和桃红色口红很多人还不知道,现在让我们一起来看看吧!1、玫红色偏向紫色

  3. 3 醉里挑灯看剑梦回吹角连营(醉里挑灯看剑梦回吹角连营全诗翻译)

    大家好,小美今天来为大家解答醉里挑灯看剑梦回吹角连营以下问题,醉里挑灯看剑梦回吹角连营全诗翻译很多人还不知道,现在让我们一起来看看

  4. 4 【总第1630期】·『看点马连洼』追寻红色足迹 传承红色基因

    追寻红色萍踪 传承红色基因薪火相传为了增强对党员的进修教育治理,拓展党群共建工作思路,4月12日,中国农大创业园党支部结合北京中农大立异

  5. 5 洋气的男孩名字(洋气的男孩名字叠字)

    大家好,小伟今天来为大家解答洋气的男孩名字以下问题,洋气的男孩名字叠字很多人还不知道,现在让我们一起来看看吧!1、越彬:博学文雅,超

  6. 6 启航心智 铸就未来

    为周全落实“树德树人”基本义务,鼎力弘扬新时代工匠精神,近日,学工部、教授部和团委精心组织了一场主题为“弘扬工匠精神 励志花样报

  7. 7 【文史动听忆先贤】李济深:领导民革为新中国的建立而团结奋斗(第四节)

      李济深(1885-1959),别名济琛,字任潮,广西苍梧人,民革创始人之一。1949年后,曾任中央人民当局副主席。民革第一至四届中央主席。第一、二

  8. 8 新浪微博注册账号申请(申请新浪微博账号有几种方式)

    大家好,小伟今天来为大家解答新浪微博注册账号申请以下问题,申请新浪微博账号有几种方式很多人还不知道,现在让我们一起来看看吧!1、打开

Copyright 2024 优质自媒体,让大家了解更多图文资讯!