将十进制天数转换为年,月,日,小时,分钟和秒

时间:2017-10-20 21:56:26

标签: excel

我拥有的:

一个电子表格,其中C列包含十进制格式的天数。

我需要什么:

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

我尝试了什么:

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

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

我的问题:

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

3 个答案:

答案 0 :(得分:0)

执行此操作的一种简单方法是使用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可能需要更改

答案 1 :(得分:0)

让Excel为您完成数学运算! ...使用TEXT函数。

DATEDIF函数(类似于VBA的DateDiff函数)是一种计算整年,几个月,几天,几小时等等的快速方法。

理想情况下,将值存储为“天数”(由于Excel会以相同的方式存储日期,因此应尽可能执行此操作。

TEXT工作表功能(或VBA中的FORMAT功能)可用于格式化持续时间和跨度,就像格式化日期和时间一样。

例如:

如果单元格A1包含您想要的格式值,例如12345(持续12,345天),则可以使用:

=TEXT(A1,"y \yr, M \m, d \d")

...将返回:

33 yr, 10 m, 18 d

使用Y,M,D,H,M,S及更多内容指定日期/时间值的位置。您可以在数字之间指定任何内容。如果您想要的字母是上面列出的字母之一,则可以在\之前放置以强制字母显示(例如上例中的d


如果您在A1中的值包含不完整的一天,例如12345.6789,则可以使用以下方法进行转换:

=TEXT(A1,"y \yr, M \m, d \d, h \hr, m \m, s \s")

....返回:

33 yr, 10 m, 18 d, 16 hr, 17 m, 37 s

未记录的工作表功能:DATEDIF

有一个名为DATEDIF的未记录的工作表函数(类似于VBA的DATEDIFF函数),它可以快速计算出年,月,日,小时等之间的差额。


  

DATEDIF 被视为Formula家族的堂兄。Excel知道它过着幸福而有用的生活,但不会在礼貌的谈话中谈论它。” — Chip Pearson

用法:

DATEDIF 的语法如下:

=DATEDIF( Date1, Date2, Interval ) < / h1>

位置:
 -Date1是第一个约会。
 -Date2是第二个日期。
 -Interval是要返回的间隔类型。

Code  Meaning                         Complete 'calendar' days/months/years        
---- ------------------------------- -------------------------------------------------------------- 
 m    Months                          Months between the dates
 d    Days                            Days between the dates
 y    Years                           Years between the dates
 ym   Months Excluding Years          Months between the dates as if they were of the same year
 yd   Days Excluding Years            Days between the dates as if they were of the same year
 md   Days Excluding Years & Months   Days between the dates as if they were of the same month & year

答案 2 :(得分:-1)

也许这是一种更有效的方法,但我相信这应该有效。如果它不只是发表评论,我们就可以解决。

<强>小时

=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分钟(可以在一秒的时间内完成)并包含完整的公式