admin管理员组文章数量:1540710
2024年6月13日发(作者:)
Datedif函数全面解析和BUG分析
DATEDIF函数是一个隐藏的日期函数,一般来说,用这个函数会比直接使用日期运
算来的简单,但是这个函数并不是那么可靠,偶尔会犯点小毛病。所以就来说,一般情况
下都会用其他方式来替代实现它的功能。
从不同的角度来看,Datedif函数都是一个比较特殊的函数:
1)在多个Excel版本中,Datedif函数都是隐藏函数,没有出现在函数列表中,Excelxx
中的公式自动完成功能也不会自动生成这个函数名称,甚至在多个版本中的帮助文件中都
找不到这个函数的踪影。
2)在多个版本中,Datedif函数的算法发生了改变,据我目前所知,ExcelxxSP3、
ExcelxxSP1、ExcelxxSP2以及还未正式上市的Excelxx中,这个函数的运算结果都有所不
同。更早期的版本尚无研究。
3)工作表函数Datedif与VBA中的函数Datediff也不相同。
本文将主要以ExcelxxSP2版本中的Datedif函数运算作为研究对象,并附上
ExcelxxSP3的相应结果作为参考。请使用正确的版本打开附件,否则将会出现不同的运算
结果。
Excel早期版本的帮助文件中,对Datedif函数的解释如下:
DATEDIF(start_date,end_date,unit)
参数start_date代表时间段内的第一个日期或起始日期。参数end_date代表时间段
内的最后一个日期或结束日期。参数unit为所需信息的返回时间单位代码。各代码对应的
含义如下:
"y"——时间段中的整年数。
"m"——时间段中的整月数。
"d"——时间段中的天数。
"md"——start_date与end_date日期中天数的差。忽略日期中的月和年。
"ym"——start_date与end_date日期中月数的差。忽略日期中的日和年。
"yd"——start_date与end_date日期中天数的差。忽略日期中的年。
这6个unit参数看上去极其简单,无非就是年月日的差值运算,但其实里面包含了
许多玄机,下面将针对这6种unit代码分别进行详解:
以下假定start_date存放于A2单元格内,end_date存放于B2单元格内
1,=Datedif(A2,B2,"Y")
此参数含义为返回时间段内的整年数,
1)所谓“整年”的判断包含了两个日期值(m-d)的大小判断,假定A2与B2相差一年,
版权声明:本文标题:Datedif函数全面解析和BUG分析 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1718215604a654267.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论