Summary

To calculate the next anniversary date, you can use a formula based on the EDATE and DATEDIF functions. In the example shown, the formula in D5 is:

 =EDATE(B5,(DATEDIF(B5,C5,"y")+1)*12)

This formula will work to calculate next upcoming birthday as well.

Generic formula

=EDATE(date,(DATEDIF(date,as_of,"y")+1)*12)

Explanation 

Working from the inside out, we use the DATEDIF function to calculate how many complete years are between the original anniversary date and the "as of" date, where the as of date is any date after the anniversary date:

DATEDIF(B5,C5,"y")

Note: in this case, we are arbitrarily fixing the "as of" date as June 1, 2017 in all examples.

Because we are interested in the *next* anniversary date, we add 1 to the DATEDIF result, then multiply by 12 to convert to years to months.

Next, the month value goes into the EDATE function, with the original date from column B. The EDATE function rolls the original date forward by the number of months given in the previous step which creates the next upcoming anniversary date.

As of today

To calculate the next anniversary as of today, use the TODAY() function for the "as of" date:

=EDATE(date,(DATEDIF(date,TODAY(),"y")+1)*12)
Dave Bruns Profile Picture

AuthorMicrosoft Most Valuable Professional Award

Dave Bruns

Hi - I'm Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.