将十进制的date转换为年,月,日,小时,分和秒

我拥有的:

列C由十进制格式的天数组成的电子表格。

我需要的:

我需要列E将列C的值转换为年,月,日,时,分和秒。

我试过了:

下面的公式通过表示年,日和月来工作,但不代表小时,分钟和秒。

=INT(C9/365)&" Years, "&INT(MOD(C9,365)/30)&" Months, "&ROUND(MOD((MOD(C9,365)),30),0)&" Days" 

我的问题:

使用上述公式,我怎样才能代表小时,分钟和秒钟? 我无法理解嵌套和舍入。

一个简单的方法是使用TEXT函数给你几小时,几分钟和几秒钟(与ian0411's注释一样),所以使用一个稍微修改的原始公式:

=INT(C9/365)&" Years, "&INT(MOD(C9,365)/30)&" Months, "&INT(MOD(MOD(C9,365),30))&" Days "&TEXT(C9,"h:mm:ss")

或者如果你想拼出你可以使用这个版本的单位

=INT(C9/365)&" Years, "&INT(MOD(C9,365)/30)&" Months, "&INT(MOD(MOD(C9,365),30))&" Days"&TEXT(C9," h"" Hours ""m"" Minutes ""s"" Seconds""")

请注意, TEXT函数是特定于语言的,因此对于非英文版的excel版本h:mm:ss可能需要更改

也许更有效的方法来做到这一点,但我相信这应该工作。 如果它不只是留下评论,我们可以解决。

小时

 =INT((C9-INT(C9))*24) 

分钟

 =INT((((C9-INT(C9))*24)-INT((C9-INT(C9))*24))*60) 

 =ROUNDDOWN((((((C9-INT(C9))*24)-INT((C9-INT(C9))*24))*60)-INT(((((C9-INT(C9))*24)-INT((C9-INT(C9))*24))*60)))*60,0) 

整个东西

 =INT(C9/365)&" Years, "&INT(MOD(C9,365)/30)&" Months, "&ROUND(MOD((MOD(C9,365)),30),0)&" Days, "&INT((C9-INT(C9))*24)& " Hours, "&INT((((C9-INT(C9))*24)-INT((C9-INT(C9))*24))*60)&" Minutes, "&ROUNDDOWN((((((C9-INT(C9))*24)-INT((C9-INT(C9))*24))*60)-INT(((((C9-INT(C9))*24)-INT((C9-INT(C9))*24))*60)))*60,0)&" Seconds" 

编辑: ROUNDDOWN而不是ROUND分钟(可以closures一秒的一部分),并包括完整的公式