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