新浪博客

用datedif()函数计算两个日期之间的年数和月数等

2010-04-23 09:05阅读:
大家在用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! 终止日期早于起始日期,返回错误值

我的更多文章

下载客户端阅读体验更佳

APP专享