【问题标题】:change hh:mm into decimal hh.mm (see example)将 hh:mm 更改为十进制 hh.mm(参见示例)
【发布时间】:2016-01-22 16:43:18
【问题描述】:

在单元格 B239 中,我有 37:15,它代表某人完成一项任务所需的总小时数。 在单元格 C239 中,我有以下公式

=INT(B239)*24+HOUR(B239)+ROUND(MINUTE(B239)/60,2)

这给了我 37.25,即 37 小时又是 100 的四分之一。我对这个结果很满意,它可以满足我的要求。但是,在 B241 中,我有 24:00,从技术上讲,它应该返回 24.00,但它在单元格 C241 中返回 0。

好像 24:00 被识别为午夜而不是 24 小时。

注意B239和C239的格式是[h]:mm。 B241 和 C241 格式是通用的。

非常感谢您的帮助 安倍

【问题讨论】:

  • 我试过 =text(B239, "[hh].mm") 这与你的略有不同。它没有做我需要的一切,因为它返回 37.15 而不是 37.25
  • 只需尝试更改单元格默认数字格式...如果显示为 0,则您的建议是正确的,但如果显示为 1,则“Scott Craner”的答案应该完全符合您的需要。 ..

标签: excel excel-formula formula vba


【解决方案1】:

试试这个:

=TEXT(B239*24,"00.00")

24:00 将返回 24:00

正如@Darren Bartrup-Cook 所说,这将是一个文本字段,因此任何使用它的参考都需要将其转换为数字。有很多方法可以做到这一点。

您可以对结果使用双重否定,假设上述公式的结果在 C239 中:

=--C239

但最终,做你想做的最好的方法是将你想要值的单元格格式化为“常规”,并保留两位小数,然后整个事情可以用一个公式完成:

=Round(B239 * 24,2)

这将返回一个数字,而不是格式正确的文本。

【讨论】:

  • 作为额外的 - 该数字被格式化为文本,这通常不是问题,除非您正在寻找类似 @​​987654326@ 的数字 - 它会返回 #N/A。如果需要,使用 VALUE 包装 TEXT 函数:=VALUE(TEXT(A1*24,"00.00"))
  • @DarrenBartrup-Cook 添加了您的建议。谢谢
  • @DarrenBartrup-Cook 谢谢。这是非常重要的一点。
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2021-09-29
相关资源
最近更新 更多