excel怎么找不到dateif函数(Excel里的隐藏函数DATEDIF)

今天来给大家讲讲DATEDIF函数,说起这个函数,80%的Excel用户都很熟悉。

毕竟,它在计算年龄、间隔时间等工作中,应用广泛。

=DATEDIF(开始日期,结束日期,返回类型)

这里第3参数有六种表示方式:

excel怎么找不到dateif函数(Excel里的隐藏函数DATEDIF)(1)

看这个表可能有点晕,我们用图示的方法来展示一下,用不同的颜色来标记时间距离。

excel怎么找不到dateif函数(Excel里的隐藏函数DATEDIF)(2)

下面我们通过一个案例,加深一下对这个函数的了解。

案例:

计算小朋友的年龄(按照“X岁X月X天"格式)。

excel怎么找不到dateif函数(Excel里的隐藏函数DATEDIF)(3)

这个公式比较长,其实它是3个部分组成的。

公式如下:

=DATEDIF(A2,TODAY(),"y")&"岁"&DATEDIF(A2,TODAY(),"ym")&"个月"&DATEDIF(A2,TODAY(),"md")&"天"

对比一下之前的示意图,是第一行的三种表示方法。

excel怎么找不到dateif函数(Excel里的隐藏函数DATEDIF)(4)

这个函数非常实用,但是,这个日期函数,却并不在Excel函数库中!

那么问题来了,如此好用却要雪藏!到底是为什么呢?

原来,函数虽好用,却自带BUG。

excel怎么找不到dateif函数(Excel里的隐藏函数DATEDIF)(5)

下面,我们来看一下这个表格,我们要计算不同的商铺租赁的整月份。

输入公式:=DATEDIF(开始日期,结束日期,"M")

excel怎么找不到dateif函数(Excel里的隐藏函数DATEDIF)(6)

这个公式应该没错呀?

为什么最后一行,明明是一个月,计算出来却是0个月呢?

这就是DATEDIF函数的BUG。

我们在计算整月份的时候,如果同时满足下面两个条件,这个BUG就会出现。

① 起止日期都是月末。比如这里的,31和30都是当月的月末。

② 开始日期的“日”的值,大于结束日期的“日”的值,比如这里,31日大于30日。

知道了BUG出现的条件,我们就可以想办法规避它。

现下,我们可以把公式调整为:

excel怎么找不到dateif函数(Excel里的隐藏函数DATEDIF)(7)

完整的公式如下:

=IF((DAY(C2 1)=1)*(DAY(C2)<DAY(B2)),DATEDIF(B2,C2,"m") 1,DATEDIF(B2,C2,"m"))

最后再啰嗦两点:

①如果结束日期是闰年的2月末的时候,可能会出现到28日就计算为一整年了,而不是29日。

②还有直接以“md”作为第三参数的时候,也会出现BUG,大家应避免用这个第三参数,改用其他函数替代。

好的,以上,就是今天的分享。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页