将时间范围格式化为天数,小时数和分钟数

Oti*_*iel 19 excel excel-formula

这纯粹是Excel表格问题.

我的时间跨度基本上是两个单元格之间的差异,每个单元格包含一个日期:

通过将数字格式更改为,我已设法获得小时数和分钟数的时差[h]:mm.现在我希望得到天数,小时数和分钟数的差异.我尝试将数字格式设置为[d]:[h]:[mm]但Excel不接受它.

这就是我现在拥有的:

    A                   B                   C (=A2-A1)
    ----------------    ----------------    ----------
1|  14/10/2011 00:00    17/10/2011 07:50    79:50
2|  14/10/2011 00:00    17/10/2011 11:00    83:00
Run Code Online (Sandbox Code Playgroud)

这是我想要的:

    A                   B                   C (=A2-A1)
    ----------------    ----------------    ----------
1|  14/10/2011 00:00    17/10/2011 07:50    3:7:50
2|  14/10/2011 00:00    17/10/2011 11:00    3:11:00
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?有没有可用的数字格式?

bre*_*tdj 27

你可以使用TEXT
=TEXT(B1-A1,"d:h:mm")

注意,直接在单元格上使用简单的数字格式可以实现相同的效果

  • 选择你的范围(细胞C1, C2等)
  • 右键单击并格式化单元格
  • 习惯
  • 类型 d:hh:mm

如果与您的示例数据不同,您的日期差异超过31天,那么这样的方法 =INT(B1-A1)&":"&TEXT(B1-A1,"h:mm")
将起作用

  • 很好,我会使用`TEXT(B1-A1; IF(B1-A1> 1;"d:hh:mm";"h:mm"))`以获得天数,只有当时差优于1时天. (4认同)

Bil*_*rry 7

警告:以上仅适用于少于31天的范围.使用

=CONCATENATE(TEXT(FLOOR(B1-A1,1),"@")," Days",TEXT(B1-A1," h:mm:ss"))
Run Code Online (Sandbox Code Playgroud)

相反,超过31天的范围.这样排序不好,所以最好在一列中进行计算,然后对该列进行美化以获得最终结果.


小智 6

不幸的是,数字和日期时间格式似乎无法组合,否则自定义格式为:

0:h:m
Run Code Online (Sandbox Code Playgroud)

将是票。但是,如果对于 32 天或更长时间的跨度,您对仅显示(小数)天数感到满意,您可以使用自定义格式,例如:

[>=32] 0.00 "days"; d:h:m
Run Code Online (Sandbox Code Playgroud)

单元格值仍然是数字。

  • 实际上这对我来说效果最好,但是为了避免混淆,因为 `##:##:##` 格式通常被视为 `hh:mm:ss`,我使用了以下内容:`[>=32] 0.00 "天";[<1] h:m:s; dh:m:s`,这种格式转换为 `34.25 days`、`4 15:44:10` 和 `2:15:33`。 (3认同)