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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当数字达到X.60时,将细胞向上舍入相关的知识,希望对你有一定的参考价值。

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

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

The wage template I am working with

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

如何才能做到这一点。

谢谢。

答案

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

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

另一答案

如果你不想使用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)

以上是关于当数字达到X.60时,将细胞向上舍入的主要内容,如果未能解决你的问题,请参考以下文章

在字母数字 NSString 中将 FLOATS 向上/向下舍入为 INTS

如何将值向上舍入到一个数字的最接近的因子[重复]

javascript 向上或向下舍入数字

如何在不向上或向下舍入的情况下获得精确的数字[重复]

如何在动作脚本中舍入数字

将 NSString 转换为 NSNumber 会导致数字过多和奇怪的舍入