如何用EXCEL计算两个日期之间相差的年数和月数?

我想计算两个不同年份的日期之间相差的年数和月数。

例如:2008-01-01和2010-03-15

有什么办法可以计算出它们是相差2年2月,如何可以精确到天数就最好啦!

一、这可以用DATEDIF函数来完成。

二、DATEDIF函数的定义
DATEDIF函数是Excel隐藏函数,在帮助和插入公式里面没有。 返回两个日期之间的年\月\日间隔数。常使用DATEDIF函数计算两日期之差。

语法
DATEDIF(start_date,end_date,unit)
Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。
End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。
Unit 为所需信息的返回类型。
Unit 返回
注:结束日期必须大于起始日期
下面举个小例子:在日常工作中非常实用。
假如A1单元格写的也是一个日期,那么下面的三个公式可以计算出A1单元格的日期和今天的时间差,分别是年数差,月数差,天数差。
注意下面公式中的引号和逗号括号都是在英文状态下输入的。
=DATEDIF(A1,TODAY(),"Y") 计算年数差
=DATEDIF(A1,TODAY(),"M") 计算月数差
=DATEDIF(A1,TODAY(),"D") 计算天数差
"Y" 时间段中的整年数。
"M" 时间段中的整月数。
"D" 时间段中的天数。
"MD" start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
"YM" start_date 与end_date 日期中月数的差。忽略日期中的年。
"YD" start_date 与 end_date 日期中天数的差。忽略日期中的年。

三、实例说明

实例1:
题目: 计算出生日期为1973-4-1人的年龄
公式: =DATEDIF("1973-4-1",TODAY(),"Y")
结果: 33
简要说明 当单位代码为"Y"时,计算结果是两个日期间隔的年数.

实例2:
题目: 计算日期为1973-4-1和当前日期的间隔月份数.
公式: =DATEDIF("1973-4-1",TODAY(),"M")
结果: 403
简要说明 当单位代码为"M"时,计算结果是两个日期间隔的月份数.

实例3:
题目: 计算日期为1973-4-1和当前日期的间隔天数.
公式: =DATEDIF("1973-4-1",TODAY(),"D")
结果: 12273简要说明 当单位代码为"D"时,计算结果是两个日期间隔的天数.

实例4:
题目: 计算日期为1973-4-1和当前日期的不计年数的间隔天数.
公式: =DATEDIF("1973-4-1",TODAY(),"YD")
结果: 220
简要说明 当单位代码为"YD"时,计算结果是两个日期间隔的天数.忽略年数差

实例5:
题目: 计算日期为1973-4-1和当前日期的不计月份和年份的间隔天数.
公式: =DATEDIF("1973-4-1",TODAY(),"MD")
结果: 6
简要说明 当单位代码为"MD"时,计算结果是两个日期间隔的天数.忽略年数和月份之差

实例6:
题目: 计算日期为1973-4-1和当前日期的不计年份的间隔月份数.
公式: =DATEDIF("1973-4-1",TODAY(),"YM")
结果: 7
简要说明 当单位代码为"YM"时,计算结果是两个日期间隔的月份数.不计相差年数注意:TODAY()函数获取的是系统当前日期,所有列举的实例为2006-11-7日的计算结果,并不一定和你得到的结果相符。
四、假设开始日期写在A1单元格,结束日期写在B1单元格,要在C1单元格得出两个日期相差的年数和月数,则公式可以写成如下
=DATEDIF(A1,B1,"y")&"年"&DATEDIF(A1,B1,"ym")&"个月"
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-20

年数=DATEDIF(A1,B1,"Y")

月数=DATEDIF(A1,B1,"M")

注意,A1是小日期,B1是大日期,不能写反,否则出错。

函数:DATEDIF(start_date,end_date,unit)

Start_date:为一个日期,它代表时间段内的第一个日期或起始日期。

End_date:为一个日期,它代表时间段内的最后一个日期或结束日期。

Unit:为所需信息的返回类型。

Unit取不同值的含意:

"Y"——时间段中的整年数。 

"M"——时间段中的整月数。 

"D"——时间段中的天数。  

"YM"——start_date 与 end_date 日期中月数的差。忽略日期中的日和年。 

"YD"——start_date 与 end_date 日期中天数的差。忽略日期中的年。 

"MD"——start_date 与 end_date 日期中天数的差。忽略日期中的月和年。

本回答被网友采纳
第2个回答  2010-01-26
您好:
你的这个问题我也遇到过,所以,我在网络上找了一个答案,以供你参考,内容如下:

======================================================================
有这个函数的

1、简要说明: 返回两个日期之间的年\月\日间隔数

2、基本语法: =DATEDIF(开始日期,结束日期,单位代码)

3、实例1:
题目: 计算出生日期为1973-4-1人的年龄

公式: =DATEDIF("1973-4-1",TODAY(),"Y")

结果: 33

简要说明 当单位代码为"Y"时,计算结果是两个日期间隔的年数.

4、实例2:
题目: 计算日期为1973-4-1和当前日期的间隔月份数.

公式: =DATEDIF("1973-4-1",TODAY(),"M")

结果: 403

简要说明 当单位代码为"M"时,计算结果是两个日期间隔的月份数.

5、实例3:
题目: 计算日期为1973-4-1和当前日期的间隔天数.

公式: =DATEDIF("1973-4-1",TODAY(),"D")

结果: 12273

简要说明 当单位代码为"D"时,计算结果是两个日期间隔的天数.

5、实例4:
题目: 计算日期为1973-4-1和当前日期的不计年数的间隔天数.

公式: =DATEDIF("1973-4-1",TODAY(),"YD")

结果: 220

简要说明 当单位代码为"YD"时,计算结果是两个日期间隔的天数.忽略年数差

5、实例5:
题目: 计算日期为1973-4-1和当前日期的不计月份和年份的间隔天数.

公式: =DATEDIF("1973-4-1",TODAY(),"MD")

结果: 6

简要说明 当单位代码为"MD"时,计算结果是两个日期间隔的天数.忽略年数和月份之差

5、实例6:
题目: 计算日期为1973-4-1和当前日期的不计年份的间隔月份数.

公式: =DATEDIF("1973-4-1",TODAY(),"YM")

结果: 7

简要说明 当单位代码为"YM"时,计算结果是两个日期间隔的月份数.不计相差年数
==================================================

原文网址:http://z.baidu.com/question/14950082.html?si=1

祝楼主能达到自己所到达到的目的!本回答被提问者采纳
第3个回答  2015-08-27
有一个在excel里面没有列举出来(2007至少没有专门列举出它)但是却能用并且很有用的函数可以达到这个目的
datedif(date1,date2,diff_type)
它需要三个参数,前两个参数是两个日期,最后一个参数是相差的类型
而且,date1这个日期必须早于date2这个日期
例如:
date1= 2008-10-13

date2= 2015-8-27
当diff_type为

y,m,d,ym,yd,md
时,公式的计算结果分别是

6,82,2509,10,99,14
自己体会一下这个公式的强大吧
第4个回答  2010-01-26
最简单的方法,直接 =DATE(2008,1,1)-DATE(2010,3,15) 精确到天数了
相似回答