Calculates the number of days, months, or years between two dates.

Warning: Excel provides the DATEDIF function in order to support older workbooks from Lotus 1-2-3. The DATEDIF function may calculate incorrect results under certain scenarios. Please see the known issues section of this article for further details.

Syntax

DATEDIF(start_date,end_date,unit)

Argument

Description

start_date   

Required

A date that represents the first, or starting date of a given period. Dates may be entered as text strings within quotation marks (for example, "2001/1/30"), as serial numbers (for example, 36921, which represents January 30, 2001, if you're using the 1900 date system), or as the results of other formulas or functions (for example, DATEVALUE("2001/1/30")).

end_date   

Required

A date that represents the last, or ending, date of the period.

Unit   

The type of information that you want returned, where:

Unit

Returns

"Y"

The number of complete years in the period.

"M"

The number of complete months in the period.

"D"

The number of days in the period.

"MD"

The difference between the days in start_date and end_date. The months and years of the dates are ignored.

Important: We don't recommend using the "MD" argument, as there are known limitations with it. See the known issues section below.

"YM"

The difference between the months in start_date and end_date. The days and years of the dates are ignored

"YD"

The difference between the days of start_date and end_date. The years of the dates are ignored.

Remarks

  • Dates are stored as sequential serial numbers so they can be used in calculations. By default, January 1, 1900 is serial number 1, and January 1, 2008 is serial number 39448 because it is 39,447 days after January 1, 1900.

  • The DATEDIF function is useful in formulas where you need to calculate an age.

  • If the start_date is greater than the end_date, the result will be #NUM!.

Examples

Start_date

End_date

Formula

Description (Result)

1/1/2001

1/1/2003

=DATEDIF(Start_date,End_date,"Y")

Two complete years in the period (2)

6/1/2001

8/15/2002

=DATEDIF(Start_date,End_date,"D")

440 days between June 1, 2001, and August 15, 2002 (440)

6/1/2001

8/15/2002

=DATEDIF(Start_date,End_date,"YD")

75 days between June 1 and August 15, ignoring the years of the dates (75)

Known issues

The "MD" argument may result in a negative number, a zero, or an inaccurate result. If you are trying to calculate the remaining days after the last completed month, here is a workaround:

=DATEDIF(D17,E17,"md") and result: 5

This formula subtracts the first day of the ending month (5/1/2016) from the original end date in cell E17 (5/6/2016). Here's how it does this: First the DATE function creates the date, 5/1/2016. It creates it using the year in cell E17, and the month in cell E17. Then the 1 represents the first day of that month. The result for the DATE function is 5/1/2016. Then, we subtract that from the original end date in cell E17, which is 5/6/2016. 5/6/2016 minus 5/1/2016 is 5 days.

Need more help?

You can always ask an expert in the Excel Tech Community or get support in Communities.

See Also

Excel functions (alphabetical)

Excel functions (by category)

How to avoid broken formulas

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.