将hh:mm改为十进制hh.mm(参见示例)

时间:2016-01-22 16:43:19

标签: excel excel-vba excel-formula formula vba

在单元格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格式是通用的。

非常感谢您的帮助 安倍

1 个答案:

答案 0 :(得分:6)

试试这个:

=TEXT(B239*24,"00.00")

在24:00它将返回24.00

enter image description here

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

你可以对结果进行双重否定,让我们假设上面公式的结果在C239中:

=--C239

但最终做到你想要的最好的方法是将你希望值为“一般”的单元格格式化为两位小数,然后整个过程可以用一个公式来完成:

=Round(B239 * 24,2)

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