I have a list containing dates of birth going from cell A1 to cell A1765 and need to calculate the ages. So far I have a row of formulas B1 to B1765 subtracting the dates of birth from todays date. Then I have a row of formulas from C1 to C1765 dividing the number of days by 365 with the cells formatted to show no decimal places to give the number of years. I now need to calculate the months and years so for example the age of someone born on 01/12/1980 would be 31 years 2 months and 19 days I am thinking of taking the results from column C multiplying them by 365 then subtracting them from the total number of days then dividing by 30 for number of months but this is getting complicated and it doesnt account for months that have more or less than 30 days. asked Feb 20 '12 at 05:51 Abby 
Wow Abby, that is quite a convoluted way of doing this and like Beyond_Life says it wont be accurate. The =DATEDIF(birthdate,date,"Y") formula will calculate the years but you will also need to use =DATEDIF(birthdate,date,"YM") to calculate the months and =DATEDIF(birthdate,date,"MD") to calculate the days. you can use each formula in a separate column 1 for years 1 for months and 1 for days or you can combine all three into a single column with the text Years Months Days after each figure. You say that your list range is from A1 to A1765 so copy and paste the following formula into cell B1 and then copy it down to cell B1765. =DATEDIF(A2,TODAY(),"Y") & " Years, " & DATEDIF(A2,TODAY(),"YM") & " Months, " & DATEDIF(A2,TODAY(),"MD") & " Days" This will work out all the ages to years, months and days and will only take up 1 column answered Feb 20 '12 at 07:55 Simon H Wow... you guys are Excel Kung FU artists! +1 to Simon!
(Feb 20 '12 at 11:53)
ShockerSH
Thank you so much guys it works fab.
(Feb 21 '12 at 06:55)
Abby

I was to fast with my previous comment. Try this: To calculate the age of a person on date since their birthdate: =INT((datebirthdate)/365.25) To figure their age as of today, date can be replaced with a function like TODAY() or NOW(). The INT() function is used to return only the number of complete years. To calculate age in terms of years, months, and days, DATEDIF is a handy function. The following formula is similar to the one above. =DATEDIF(birthdate,date,"y") answered Feb 20 '12 at 06:59 Beyond_Life 
Simon, I like your formula but why would you use your references to $Z$1 rather than "today()" throughout the formula? Thx, Rick answered Feb 20 '12 at 09:07 RShores Good point, I guess its just force of habit from when I was first taught to use Excel. I think it would be better to use "today()" throughout the formula and will edit the answer.
(Feb 20 '12 at 14:54)
Simon H

Beside the months with more or less then 30 days, you are also forgetting the leap years. I don't think the formula's are accurate.
But I also don't have an answer.