【问题标题】:How can I extract the hour part from a duration value in Excel?如何从 Excel 中的持续时间值中提取小时部分?
【发布时间】:2016-08-04 07:31:52
【问题描述】:

如何将 excel 中的持续时间转换为文本?我在一个单元格中有 1037:00:00,这是某些持续时间的总和。我想单独提取1037。当我尝试使用 MID 提取或使用 TEXT 函数时,Excel 返回“小时”。

【问题讨论】:

  • 您所问的内容与转换为文本无关。如果你想提取一个 time 组件,你应该使用与时间相关的函数,而不是字符串操作
  • 甚至可以使用 split(":")
  • Excel 没有持续时间格式,1037:00:00 不是时间值。这意味着这只是文本。 LEFT(A1,4) 将直接返回第一个组件。 LEFT(B1;FIND(":";B1)-1) 实际上会寻找第一个冒号
  • @PanagiotisKanavos 将 23:00:00 放入一个单元格中,然后将其复制下来。然后将总和(23 小时的范围)放在底部。我以 598:00:00 结束,当我将格式从自定义切换到常规时,我以 24.91667 结束。所以是的,您可以显示超过 24 小时
  • @ForwardEd 这只是文本。唯一改变的是单元格格式。时间格式将显示“12:00: AM”。您看到的是一个以 custom 格式显示的数字。在 Excel 中,一切都是文本或数字,不同的“类型”只是显示样式

标签: excel


【解决方案1】:

如果它确实是某些持续时间的总和,您可以通过将单元格乘以 24 来获得小时数。日期或时间单元格的内部表示是自 1900 年初以来的天数,因此您有乘以 24 得到小时数。 (1900 年对你来说并不有趣,因为你只需要一个时间跨度。)Hour 函数在这里不起作用,因为在这种情况下你得到的是 5 小时。

确保将目标单元格格式化为常规数字。

【讨论】:

  • 谢谢 Fratyx。在格式化为常规数字的单元格中提取所需长度后乘以 24 就可以了。
【解决方案2】:

假设您的单元格 1037:00:00 位于单元格 L40 中。您可以使用以下公式来计算小时数。

=INT(L40)*24+HOURS(L40)

请注意,这只会将整小时向下取整。它不考虑分钟或秒。

替代方案:

=Rounddown(L40*24,0)

Fratyx 在他的回答中解释了这种替代方案。

【讨论】:

    猜你喜欢
    • 2020-04-29
    • 2022-01-06
    • 1970-01-01
    • 2011-09-08
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多