rlm said:
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 said:
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,9289457264239899814128875732421875. 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.