在Excel中将时间格式化为天,小时,分钟和秒的更好方法?

时间:2015-08-02 21:24:04

标签: excel time number-formatting

在Excel中,我通常通过将小时,分钟和秒放入单独的单元格来跟踪所花费的时间。我发现Excels内置的日期和时间格式在添加和减去时有很多怪癖,这就是我避免它的原因。

现在我有一张Excel表格,可以保留重复任务的时间,如下所示:

|  H  |    I    |

| Min | Seconds |  
|  7  |   15    |
|  7  |   51    |
|  8  |   05    |

在单元格E5中,然后我将任务的总时间(以秒为单位)并将其转换为天数

=(SUM(H:H)*60+SUM(I:I))/60/60/24

现在我希望E5的总数显示在小时分钟。我可以将E5格式化为d" days "h" hours "mm" min "s" s",但如果总时间超过30天,则无效。

所以我现在所拥有的,在不同的单元格中,就是这个公式:

=TRUNC(E5)&" days "
&TRUNC((E5-TRUNC(E5))*24)&" hours "
&TRUNC(((E5-TRUNC(E5))*24-TRUNC((E5-TRUNC(E5))*24))*60)& " min"
&TRUNC(((((E5-TRUNC(K5))*24-TRUNC((E5-TRUNC(E5))*24))*60)-
TRUNC((((E5-TRUNC(E5))*24-TRUNC((E5-TRUNC(E5))*24))*60)))*60)&" s"

(注意:forumal是在Excel中的一行,我在这里格式化它所以它更容易阅读。)

我使用的公式在我使用的任何时间内都是准确的,但它很长很难以遵循。有没有更好的方法呢?

(请记住,我正在使用格式化为数字的单元格。没有格式化为日期,并且它们没有格式化为时间。)

1 个答案:

答案 0 :(得分:2)

正如您在下面的图片中看到的那样,我无法让您提供的公式(在E6中)有任何确定性,但我设计了一个公式,将一些工作表函数与自定义格式化掩码相结合,似乎运行良好。

TRUNC days from datetime

E7中的公式是,

 =INT(E5)&TEXT(MOD(E5, 1), " \d\a\y\s h \h\r\s m \mi\n\s s \s\ec\s")

您不能在同一格式字符串中同时使用0和h,但可以删除h,m和s的日期部分和格式。格式掩码中的反斜杠是转义字符,并且无需在引用的字符串中加倍引号。 INT function解析了整数部分,MOD function提供了小数(又称时间)部分。

¹我更喜欢INT function而不是TRUNC function来删除数字的小数部分。这完全是个人喜好。在这种情况下,没有区别。甚至可以使用ROUND