View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
joeu2004[_2_] joeu2004[_2_] is offline
external usenet poster
 
Posts: 829
Default Converting time to Minutes

"rlm" wrote:
Converting 5:08:00 using =(HOUR(D2) *60)+MINUTE(D2)
works perfect. That turns out 308 minutes.
However, converting 119:38:00 the same way doesn't work.



"Claus Busch" wrote:
Am Thu, 21 Jul 2011 05:32:48 -0700 (PDT) schrieb rlm:
=D2*1440
and format General


Although that does work by coincidence for D2 equal to 5:08:00 and
119:38:00, I would suggest the following instead:

=ROUND(D2*1440,0)

Try putting Claus's formula into D3, and put =D3-ROUND(D3,0)=0 into D4.
Then put 1:03:00 into D2. You will see that D4 is FALSE (!).

The point is: Excel time is stored as decimal fraction of a day. As with
all non-integers, the representation is usually not exact. See #2 below.

Some other details....

1. Note that I write =D3-ROUND(D3,0)=0 instead =D3=ROUND(D3,0).

The latter returns TRUE, but it is only an illusion due to the dubious
heuristic poorly described under the misleading title "Example When a Value
Reaches Zero" at http://support.microsoft.com/kb/78113. In other words,
Excel forces the latter difference to zero artificially. We cannot always
count on that.

2. I write ROUND(D3,0) instead of INT(D3).

This is because the floating-point representation of D3 when D2 is
1:03:00 is actually less than 63, namely
62.9999999999999,928945726423989981412887573242187 5. As it happens, Excel
INT(D3) does return 63 for that representation. But I argue that it is a
defect. Note that VBA Int(Range("d3")) returns 62, as I would expect.