2017-10-20 1202 views
1

我还有:

一个电子表格,其中列C由十进制格式的天数组成。将小数点转换为年,月,日,小时,分和秒

我需要什么:

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

我已经试过:

下面的公式的工作原理是代表年份,日期和月份,但并不代表小时,分钟和秒。

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

我的问题:

使用上面的公式,我怎么也代表小时,分钟和秒?我无法理解嵌套和舍入。

+0

这样你就可以” t只是使用这样的东西:'= TEXT(C9,“yyyy-mm-dd hh:mm:ss”)'?或者你必须有年,月,日,小时,分钟和秒的措辞? – ian0411

+0

@ ian0411 - 在数年和数月内无法正常工作,例如C9中的20会给出这个结果'1900-01-20 00:00:00' .....但你可以用它作为原始公式附加的'hh:mm:ss' - 参见我的回答 –

回答

0

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

小时

=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" 

编辑:代替ROUNDDOWNROUND为分钟(可以是关闭的第二的一部分),并包括在完整的公式

+0

我是难以结合公式。这是我的结果公式:https://pastebin.com/TAh2xAW5但值为27。3将秒数值转换为60秒。即0年,0个月,27天4小时47分60秒 –

+0

@ClarusDignus我已经更新了我的答案。包含来自您的粘贴箱的参考修正,将'ROUND'改为'ROUNDDOWN'并添加逗号,请尝试新的公式。 –

1

一种简单的方法来做到这是使用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可能需要更改

相关问题