Get days, months, and years between dates in Excel
This tutorial show how to Get days, months, and years between dates in Excel using the example below.
To calculate and display the time between dates in days, months, and years, you can use the a formula based on the DATEDIF function.
Note: The DATEDIF function is designed to calculate the difference between dates in years, months, and days. There are several variations available (e.g. time in months, time in months ignoring days and years, etc.) and these are set by the “unit” argument in the function. See this page on the DATEDIF function for a full list of available units.
Formula
=DATEDIF(start,end,"y") &" years,"&DATEDIF(start,end,"ym") &" months," &DATEDIF(start,end,"md") &" days"
Explanation of how this formula works
In the example shown, the formula in D6 is:
=DATEDIF(B6,C6,"y") &" years,"&DATEDIF(B6,C6,"ym") &" months," &DATEDIF(B6,C6,"md") &" days"
where start dates are in column B, and end dates are in column C.
Using DATEDIF function;
In the example shown, we calculate years, months, and days separately, then “glue” the results together with concatenation. To get whole years, we use:
DATEDIF(B6,C6,"y")&" years,"
To get whole months, we use:
DATEDIF(B6,C6,"ym")&" months,"
And we calculate days with:
DATEDIF(B6,C6,"md")&" days"
The rest of the formula is simply the required text joined together with the concatenation operator (&).
Without zero values
To prevent the output of days, months, or years with zero values, you can wrap each DATEDIF function inside IF, as shown here (line breaks added for readability):
= IF(DATEDIF(B6,C6,"y"), DATEDIF(B6,C6,"y")&"yr ","")& IF(DATEDIF(B6,C6,"ym"), DATEDIF(B6,C6,"ym")&" mo ","")& IF(DATEDIF(B6,C6,"md"), DATEDIF(B6,C6,"md") &" dy","")
To prevent extra commas from appearing in the final result, commas have been replaces by spaces. Using the original DATEDIF formula as the “logical test” inside IF works because IF treats any non-zero result as true.