I realize this topic was "solved" seven years ago, but I wanted to suggest another idea which will be more accurate. I would use the EDATE function, asking it to add 12 months. Here is an example:I can't find a way to add one full year … in comparison with the original birthday.
You should use TODAY() instead of NOW() since the time of birth is (presumably) not known, and even if it were, the birthday is celebrated all day.… based on NOW() …
All attempts to use constants like 365 or 365.25 or 365.2425 or 365.26 are doomed to fail occasionally, because years vary in length. This is why Calc provides many date functions to perform calculations correctly. For today, 2024-05-21, the formula above determines someone born on 1920-05-20 has their next birthday on 2024-05-20 (yesterday). These cases are admittedly rare but why not use EDATE, as shown in the attachment, which always determines the correct date?The simplest formula by Lupp worked perfectly after I added a term (TODAY()-D2)/365,26 giving the present age also: =D2+YEARS(D2; NOW(); 0)*365.26+365.26
You have asked in other topics about doing complex calculations in a single cell. The attachment uses ten columns to create something like John's 30th birthday is in 296 days on March 13th in a cell. It would be possible, I suppose, to create a monster formula in a single cell. However I find huge, inscrutable formulas to be of little value and I decline to help with that.
If you need any additional assistance attach a spreadsheet demonstrating the difficulty (remove confidential information then use Post Reply, not Quick Reply, and don't attach a picture instead of the spreadsheet itself). I will not help further unless you attach a spreadsheet.
Statistics: Posted by MrProgrammer — Tue May 21, 2024 7:15 pm