一个电子表格,其中C列包含十进制格式的天数。
我需要E列将C列的值转换为年,月,日,小时,分钟和秒。
以下公式通过表示年,日和月来工作,但不代表小时,分钟和秒。
=INT(C9/365)&" Years, "&INT(MOD(C9,365)/30)&" Months, "&ROUND(MOD((MOD(C9,365)),30),0)&" Days"
使用上面的公式,我怎样才能表示小时,分钟和秒?我无法理解嵌套和舍入。
答案 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)
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
分钟(可以在一秒的时间内完成)并包含完整的公式