View Single Post
  #14   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Epinn Epinn is offline
external usenet poster
 
Posts: 605
Default calculate age from 2 dates in yy,mm,dd format in excel

Hi,

I love this, the kind of discussion that I enjoy. You are my kind of people - detailed, curious, sense of perfection ......

Pete, I asked the same question: Why NOW( ) and not TODAY( )?

I think I like TODAY( ) even though it is not significantly faster; we don't need the time in NOW( ). Someone may still prefer NOW( ) which has less *keystrokes* than TODAY( ). This is one advantage I can think of. ;)

Jim, thanks for pointing out that both are volatile functions. Also, it is interesting to learn about overhead in checking precedents and dependants of dirtied cells.

Can someone define "dirtied cells" for me please, both in English and in Excel? Thanks.

I am going to start another thread on DATEDIF and you are cordially invited.

Epinn

"Jim Thomlinson" wrote in message ...
There is overhead to check the precidents and dependants of dirtied cells so
any differences will be negated by the overhead of having to check...
--
HTH...

Jim Thomlinson


"Pete_UK" wrote:

Thanks for that, Jim.

I would have thought, intuitively, that for Excel to bring the full
system date and time from wherever it is stored in memory would take
longer than if it only needs to fetch the system date (fewer bytes to
copy), hence my suggestion to use TODAY() rather than NOW(). Obviously,
the overhead to convert those bytes into Excel's floating point format
is greater than the time taken to fetch.

I also felt, instinctively, that by having the function once in a cell
and then referring to it many times in other formulae would be quicker
than having the function repeated in many DATEDIF formulae - if there
were 10,000 dates of birth, for example, wouldn't 30,000 NOW() (or
TODAY() ) functions take longer to calculate than one NOW() function
with 30,000 copies of that cell's contents??

Obviously not, from your timings.

Thanks again,

Pete


Jim Thomlinson wrote:
Purely out of idle curriosity I bench marked both your function and Chips
using both Today and Now. Calculated 100,000 times the functions randomly
took between 15 and 25 seconds to calculate, with no significant differences
between the different methods... The moral of the story is do it how ever you
want...
--
HTH...

Jim Thomlinson


"Jim Thomlinson" wrote:

So how would you make it faster??? Both Now and Today are volatile so there
is no real advantage to using either one in the context they are being used
and the formula is concatenating 3 calculations together so it requires
getting the current date 3 times. While you could put Now (or Today) in a
seperate cell any gains in speed by only calculating the value once will be
lost in the fact that you now have 3 references to that volatile cell.
--
HTH...

Jim Thomlinson


"Pete_UK" wrote:

I'm not sure why Chip used NOW() instead of TODAY(), and by having it
in the formula 3 times, surely this will take longer to calculate than
once in a cell (I know you are keen on timings in formulae, Epinn).

Pete

Epinn wrote:
From the link:

Calculating A Person's Age

A frequent use of the DATEDIF is to compute someone's age based on the current date and their birthday. The formula below will return someone's exact age based on their birthday in cell A1.


=DATEDIF(A1,NOW(),"y") & " years, " & DATEDIF(A1,NOW(),"ym") & " months, " & DATEDIF(A1,NOW(),"md") & " days"

This will return a string like

33 years, 9 months, 18 days



"Epinn" wrote in message ...
In case you want to do some reading while you wait for an answer ......

http://www.cpearson.com/excel/datedif.htm#Age

Epinn

"jan" wrote in message ...
using excel 2003. try to calculate age from date of birth and another date.