大家在用excel插入公式时,一定不会找到DateDif这个函数,甚至在帮助里面也没有。其实这个函数在2000的版本里面已经有了,现在我们常用的Excel2003里还是不能找到这个函数,不知道微软是出于什么原因不愿把这个函数公开 化,也不知道还有多少这样的函数,姑且称之为神秘函数吧。
言归正传,我们现在来讲解一下这个函数的用法。
1、函数的作用:用于计算两个日期之间的天数、月数、年的差,例如=DATEDIF("2006-3-1","2006-4-5","d"),excel的计算结果就是两个日期的差:35.
2、函数的原型:
datedif(Start_date,End_Date,unit):
Start_date:表示开始日期
End_Date:表示结束日期
unit:上面我们看到了计算天数的差额,第三个参数是"d",如果要计算年份、月份,怎么办呢?聪明的你肯定猜到了,奥妙就在这里。第三个参数unit可以有6种选择,见下表:
unit可选值 | 含义 |
y | 返回两个日期之间的整年数 |
m | 返回两个日期之间的整月数 |
d | 返回两个日期之间的天数 |
md | 返回两个日期之间的天数,忽略日期中的年和月 |
ym | 返回两个日期之间的天数,忽略日期中的年和日 |
yd | 返回两个日期之间的天数,忽略日期中的月和日 |
3、例子:
下面的例子大家要注意是只取日做差(参数为d),还是结合年、月一起做差(参数为md),
起始日期 | 终止日期 | 公式 | 公式的值 | |
2008-1-1 | 2009-1-1 | DATEDIF($A$26,$B$26,"d") | 366 | 第三个参数为"d"表示返回两个日期“天数”的差 |
2007-1-1 | 2008-1-1 | DATEDIF($A$27,$B$27,"d") | 365 | (平年与闰年?)第三个参数为"d"表示返回两个日期“天数”的差 |
2007-1-1 | 2008-1-1 | DATEDIF($A$28,$B$28,"md") | 0 | 等于从两个日期中用day()函数取出日进行相减操作 |
2007-1-1 | 2008-1-5 | DATEDIF($A$29,$B$29,"md") | 4 | 等于从两个日期中用day()函数取出日进行相减操作 |
2008-1-1 | 2009-3-1 | DATEDIF($A$30,$B$30,"yd") | 60 | 返回两个日期之间的天数,忽略日期中的年 |
2008-1-1 | 2009-1-1 | DATEDIF($A$31,$B$31,"m") | 12 | 返回两个日期之间的月数 |
2008-1-1 | 2009-12-2 | DATEDIF($A$32,$B$32,"ym") | 11 | 返回两个日期之间的月数,忽略年,年不参与运算 |
2008-1-1 | 2009-1-1 | DATEDIF($A$33,$B$33,"y") | 1 | 第三个参数为"y"表示返回两个日期“年份”的差 |
2008-1-1 | 2009-12-2 | DATEDIF($A$34,$B$34,"y") | 1 | 第三个参数为"y"表示返回两个日期“年份”的差,超过1年不足2年,返回1 |
2008-1-1 | 2008-12-31 | DATEDIF($A$35,$B$35,"y") | 0 | 第三个参数为"y"表示返回两个日期“年份”的差,小于1年,返回0 |
2008-1-1 | 2007-3-1 | DATEDIF($A$36,$B$36,"y") | #NUM! | 终止日期早于起始日期,返回错误值 |