3

我有的:

一个电子表格,其中 C 列由十进制格式的天数组成。

我需要的:

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

我试过的:

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

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

我的问题:

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

4

3 回答 3

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可能需要更改

于 2017-10-21T12:30:12.153 回答
0

让 Excel 为您计算!...使用该TEXT功能。

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

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

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

例如:

如果单元格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被视为公式家族的醉表弟。Excel 知道它过着幸福而有用的生活,但不会在礼貌的谈话中谈论它。” — 奇普·皮尔逊

用法:

DATEDIF的语法如下:

=DATEDIF( <em> Date1, <em> Date2, <em> Interval <代码>)

其中:
-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

于 2018-07-09T02:43:40.137 回答
-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几分钟(可以关闭一秒钟的一部分)并包含完整的公式

于 2017-10-20T22:21:44.397 回答