分类:日期和时间函数 DATEDIF是用来计算两个日期之间相差的精确数字,可以根据要求返回年数,月数或天数。 DATEDIF有三个参数: 开始日期 结束日期 计算单位 其中,计算单位用于指示返回的值是年,月还是天。 下表是计算单位的设定:
下面是使用各种单位的公式示例: 下图用图示的方式展示了上图中的各种返回结果: DATEDIF返回年和月时结果都是整数,不足1年或者1月的天数会被忽略掉。 但是我们可以结合采用不同单位的DATEDIF公式返回精确结果,比如,下面的例子中我们返回了两个日期之间的精确天数:
返回结果: 1年3月7天 注:跟其他日期函数不同,DATEDIF函数必须把较小的日期放在第一个参数,如果写错了,会返回错误。 问题 在某些情况下,DATEDIF函数的“MD”会返回错误的结果,有时是负数,有时是0,有时是正数但是不是期望的结果。比如下面的情况: 造成这种情况的原因是Excel在计算时对实际月份的天数考虑不周造成的。 对于第3行数据来说,Excel首先计算两个日期之间差几个整月,结果是2, 然后就将开始日期进行如下计算:
结果是"2021/14/31",Excel会在计算时自动变成“2022/3/3”,然后用2022/3/1减去2022/3/3,结果就是-2。 所以,在使用MD作为单位时要小心。更稳妥的方法是使用替代公式进行计算:
注:DATEDIF的本来目的是与Lotus 1-2-3兼容。它本身在Excel中是一个隐藏函数。上面的这种计算错误问题微软早已了解,但是并没有修改。说明微软并不太建议大家使用这个函数。 Excel+Power Query+Power Pivot+Power BI 自定义函数 底部菜单:知识库->自定义函数 面授培训 底部菜单:培训学习->面授培训 也可以在历史文章中学习Excel,Power Query,Power Pivot,Power BI,Power Automate各种技巧。 |
|