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

Abi*_*gal 3 excel vba formula excel-vba excel-formula

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

非常感谢你的帮助安倍晋三

Sco*_*ner 6

试试这个:

=TEXT(B239*24,"00.00")
Run Code Online (Sandbox Code Playgroud)

在24:00它将返回24.00

在此输入图像描述

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

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

=--C239
Run Code Online (Sandbox Code Playgroud)

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

=Round(B239 * 24,2)
Run Code Online (Sandbox Code Playgroud)

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

  • 作为额外的 - 这个数字被格式化为文本,这通常不是问题,除非你正在寻找一个像`= VLOOKUP(24.25,$ B $ 1:$ C $ 23,2,FALSE)的数字` - 它将返回#N/A. 如果需要,使用VALUE包装TEXT函数:`= VALUE(TEXT(A1*24,"00.00"))` (2认同)