Excel 公式计算加班时间

Excel 公式计算加班时间

我需要帮助计算超过 40 小时的小时数。这是一个工资电子表格,我想计算加班时间。

如果 Q4 大于 40 小时,则从 Q4 中减去 40 小时并显示差值的小时数。如果单元格小于 40 小时,则返回 0。

以下是我所拥有的:

=IF(Q4>40,Q4-40,0)

但是,当针对包含 49:23 的单元格进行计算时,它始终返回 00:00

源单元格是自定义格式的 [HH]:MM,因为在计算单元格以获取总小时数时,它不会显示超过 12 的小时数。

答案1

Excel 将时间(和日期)存储为。所选的显示格式对此没有影响(并且与您的问题无关)。

你需要做数学题,而不是您显示的内容。如果您想检查“> 40 小时”,请检查“> 40/24 天”。

那就=IF(Q4>40/24,Q4-40/24,0)作为你的例子吧。

答案2

单元格 Q4 中的值似乎是 DateTime。在 Excel 中,它存储为一个数字,其中整数部分是天数,小数部分是一天中的时间。要获得小时数而不是天数,您需要乘以 24。以下公式将获得超过 40 的小时数。

=IF(Q4*24>40,Q4*24-40,0)

如果 Q4 包含 49:23,则此公式返回 9.3833。确保包含加班时间的单元格格式为数字(或“常规”)而不是时间。

如果要忽略小时的分数,请使用以下INT函数:

=IF(Q4*24>40,INT(Q4*24-40),0)

正如 Scott 在他的评论中指出的那样(感谢 Scott),Q4*24-40在公式中重复 是不雅的,如果需要更改公式,可能会导致错误。第一个公式的更好版本是:

=MAX(Q4*24-40,0)

第二个更好的版本是:

=MAX(INT(Q4*24-40),0)

Q4*24这些之所以有效,是因为任何小于的时间都会小于零40,所以函数将返回 0 而不是。Q4*24-10MAXQ4*24-40

相关内容