当h = 0时修复格式错误的时间'hh:nn:ss'

我正在做一个报告,计算人们的时间来确定他们的工资。 我们从我们的服务器中提取报告并将其粘贴到Excel中进行计算。 我在拉取数据时遇到了一个问题:如果他们login的时间less于一个小时,我们的公式不起作用:

=IF(E159="","",((HOUR(E159)+(MINUTE(E159)+(SECOND(E159)/60))/60)))

如果时间是:34:15 ,会给出一个错误( #value ),但是如果是00:34:15那么00:34:15

格式化单元格似乎不起作用。

我想通过这个专栏,并将00添加到所有缺less的值,我需要一些帮助或指导。

关于SO的另一个问题看起来可能有帮助,但我不确定如何使用它。

假设从上面的公式中得到的单元格E159中,可以在时间的开始附加一个0。 这将解决所有的时间失踪,不会影响其他线路。

 ="0"&E159 

然后,您可以使用此编辑来replace原始公式中的所有E159引用,使其看起来像这样:

 =IF(E159="","",((HOUR("0"&E159)+(MINUTE("0"&E159)+(SECOND("0"&E159)/60))/60))) 

虽然很难阅读,但它的确有用。

虽然这个答案你质疑..我认为有一个更好的方法来实现这个公式。

看起来你最终的结果是时间转换成小时,分钟和秒钟作为下一个小时的分钟。 你可以做到这一点:

 =E159*24 

这会给你与原来的公式相同的结果。 然后结合我的第一个答案得到一个公式,看起来像:

 =("0" & E159)*24 

这种方法更容易阅读/编辑,并提供相同的输出。

为什么这个工作

Excel将所有date存储为整数,并将所有date存储为一天中的一个分钟。 所以当Excel存储12个小时的时候,它保存为.5,因为它是一天的一半。 通过将输出时间除以24,我们将整个时间值从一天的百分比下降到百分之几。