The formula is correct. You need to sort on the date of birth field then your ages will be in the correct sort order.
Your sort order shown is correct for text values. To expand on Stacey's answer, you need a number field (Or calculation field with a number result type) with just the age in months and another of the same with just the age in years. You can then use these two fields in order to sort your ages into correct order. (These sort fields need not be visible on your layout.)
Thank you both very much.
Stacy - I'd have never of thought of using the DOB field as source for the sort. I assumed it would of been the cAge calculation field, as that is what returns the years and month(s) past current date.
Phil - My cAge calculation field does return a number result. The DOB field is obviously a date. Should I change my fields to replicate what you've described. Because at present, cAge returns both years and months together within one field. They are not separated as you specify.
Will i run into future issues leaving it as is. Or is it a question of breaking things downs to the smallest components makes good database design?
My cAge calculation field does return a number result.
What I see is not a number result, but a text result. The result type, may be number but the resulting VALUE is text and cannot be treated both as text and two different number values in the same field when it comes to sorting and calculations.
I would leave this calculation alone and if I need accurate sorting/grouping by year and month, keep two separate fields for that purpose. If all you need is the correct order Stacey's suggestion to sort by the original data of birth is the simplest approach. But if you need to group records by year, month in a summary report, for example, you would need the separate sort fields that I have described. (This is something easily added at a later point in time if you don't need it now but might need it in the future.)