将十进制的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一秒的一部分),并包括完整的公式