当数字达到X.60时,将细胞向上舍入

问题描述 投票:2回答:2

我在excel中制作一些东西来计算我工作一周/月的工作时间,当一个数字达到30.60时(两个班次在半小时结束时)它计算为30.60 *工资=不是正确的工资。

到目前为止,我有=ROUND(SUM(C6:I6),0)汇总了数字,这工作正常,直到我有另一天,我工作到半小时,然后它只会显示16左右。

The wage template I am working with

正如你在这里看到的,它计算得很好,直到我在周三工作7.30小时,总计显示23.00而不是23.30。

如何才能做到这一点。

谢谢。

excel time excel-formula
2个回答
3
投票

你的问题是对你的“小时”的理解。当你写7.30时,你的意思是7小时30分钟= 7.5小时。但是excel知道7小时30/100小时= 18分钟。最简单的解决方案是使用7,5进行7小时30分钟。

(为了检查未答复的问题,我复制了我的评论)


0
投票

如果你不想使用7.5(七个半小时)或7:30(7小时30分钟 - 但请记住将其乘以24,因为Excel将其存储为一天中的一小部分,0.3125)那么你可以使用INTMOD

=INT(C6)+(MOD(C6,1)/0.6)

第一部分,INT(c6)将给你整数部分(即整个小时),我们不想缩放/倾斜。

第二部分有两个阶段。首先,MOD(c6,1)将给出数字的小数部分(即7.3将成为0.3),第二部分是由0.6除以从“假分钟”转换为“实际小时数”

最后,由于您要将公式应用于单元格数组,因此需要从SUM交换到SUMPRODUCT

=SUMPRODUCT(INT(C6:I6)+(MOD(C6:I6,1)/0.6))

但是,总的来说,最好的选择是使用7:30并设置数据验证仅允许该字段中的实际时间值。

{编辑}当然,这将使你的输出与0.5 30分钟。如果你想反向回0.3 30分钟(虽然,我几乎无法理解为什么)然后你需要反向运行相同的计算:

=INT(SUMPRODUCT(INT(C6:I6)+(MOD(C6:I6,1)/0.6))) + 0.6*MOD(SUMPRODUCT(INT(C6:I6)+(MOD(C6:I6,1)/0.6)),1)
© www.soinside.com 2019 - 2024. All rights reserved.