在EXCEL中,有一些隐藏的函数,用好它们能快速达到目的,最常用的是DATEDIF,但此函数在使用过程中,有个致命的错误,需要加以修正。
工具/原料
电脑
EXCEL软件
方法/步骤
1、DATEDIF函数,是Excel中的隐藏函数之一,其帮助文档里没有,使用时也没有用法提示,完全是靠咨询、网上查找才知道的函数,其使用方法,前文已作过介绍,这里不再赘述,可以参看下:“EXCEL中隐藏函数DATEDIF的使用”。
2、刚接触此函数的时候,感觉神了,为什么会把这么好用的函数隐藏呢?慢慢在使用过程中发现了此函数存在点问题,不知是否基于此原因,微软才将其隐藏。
3、比如参数为“M”时,求实足月数,当日期参数在月底的时候,只要结束日期中的“日”大于等于开始日期中的“日”,即会按整月算,而结束日期中的“日”小于开始日期中的“日”,则按不足一月算,忽视了对当月最后一天的判断。
4、参数为“Y”时,求实足年数,当开始日期或结束日期当年是闰年,并且是2月底时,也会出现BUG。
5、参数为“YM”时,忽略年求月数时,也存在类似的问题。
6、经过比较推敲,发现所有问题都出现螅岔出礤在月底,有“月大”、“月平”、“月小”之分,而函数却只按“日”的大小判断,不管有没有到月底。因此要继续使用此函数,就要想办法对此问题进行补救,先判碘钹阏螗断是否月底,判断方法:凡是日期增加1日后是次月1日的,那该日期就是月底,而判断是否为1日是比较简单的,只要看DAY函数的结果是否为1。
7、这样就巧妙的避开了“咧矸苒禺月大”、“月平”、“月小”的问题,凡是月底,都改为次月1日,没到月底的维持不变,不会改变足月结果:=DATEDIF(A2+(D帆歌达缒AY(A2+1)=1),B2+(DAY(B2+1)=1),"YM")。
8、在此基础上进一步探讨,管它是否到月底,都加上1天进行计算,也就是到了月底的会变成次咧矸苒禺月1日,没到月底的也加上1天,反正是同时加上1天,丝毫不会影响上诹鬃蛭镲面的结果,公式变得比较简洁:=DATEDIF(A2+1,B2+1,"YM"),类似的,公式中的“YM”参数可以是“M”、“Y”参数。