Excel:小时/分钟到十进制值

在别的之前,我正在使用Excel 2010。

我试图简化一个stream程,从我运行的报告中获取信息,以秒为单位生成时间。 我需要十进制的时间,而不是几个小时,到目前为止,这是我能想出的唯一的解决scheme。例如:

A1包含以秒为单位的时间。

1843 (seconds) 

B1包含将秒转换为小时的公式

 =B1/(1440*60) This gives me 0:30:43 

然后,我必须计算剩下多less时间,这是我需要的。

 =IF(B1<$H$1,"ON TIME",SUM(B1-$H$1)) 

这个公式我把它放在C2中,H1包含时间限制0:30:00,单元格格式化为[h]:mm:ss。 我用它来计算超过极限的时间。

一旦我有时间超过限制,在这种情况下,0:00:43秒,我必须将其转化为小数来得到我真正需要的所有这一切,为此我使用下面的公式。

 =C2*60*24 

这个公式(放置在R1中)给了我0.72的结果,但我必须复制这个结果并粘贴到另一个单元格,当我这样做,粘贴值,我得到这个。 0.71666666666667。 即使单元格被格式化为2位小数的数字。 它只影响我在单元格中看到的内容,而不是单元格中的实际值。

现在,解决这个问题,并得到正确的数字。 我在S1中有另一个公式的地方给我正确的数字,在复制和粘贴作为价值,我得到我需要的实际价值。

 =TRUNC(R1,2) 

这给了我0.71,如果我复制并粘贴从公式中得到的东西,并将其粘贴为值,我保持0.71。

有没有什么办法通过VBA或其他公式替代方法来缩短这个过程?

感谢您的帮助。

如果你想在十进制minutes得到答案,那么把所有的东西都转换成一个十进制的数字代表minutes比较容易,比如把A1除以60,把H1乘以1440,假设A1中的秒数总是greater H1中的等价值你可以使用这个单一的公式

=FLOOR(A1/60-$H$1*1440,0.01)

格式为带2位小数的数字,根据需要得到0.71

如果你想joinIF函数的“On time”部分,使用这个版本

=IF(A1/60>$H$1*1440,FLOOR(A1/60-$H$1*1440,0.01),"ON TIME")

如果H1没有变化,可以用小数分钟replace公式中的$H$1*1440 ,例如30