Excel计算罚款

时间:2021-06-13 08:57:06

标签: excel excel-formula

如果周六下午 12:00 之前的所有工作时间均按正常时间 (1.0) 支付。同一班次中午 12 点后的工作时间按罚金支付 (1.5)

因此,如果员工在周六上午 9 点开始工作 8 小时轮班,则支付 8 小时轮班中的 5 小时,并额外支付 50% 的罚款。

  • A1 = 班次持续时间

  • A2 = Shift 开始

  • A3 = 休息时间(仅当班次持续时间大于 5 小时时才计算为 1 小时 - 我的最后一个问题已经解决了!)

  • A4 = Shift Finish (A2 + A1)+A3

在这种情况下,我需要计算付款。基本费率支付是 A1 * 小时费率 - 这是直接的 - 但计算加班费是我失去的地方!

我需要一个公式来计算下午 12:00 之后的所有工作时间,然后乘以 0.5 来计算罚款金额。

2 个答案:

答案 0 :(得分:1)

我认为这就是您的意思(我使用 A5 表示小时费率):

=IF(A2>(12/24),A1*1.5*A5,IF(A2+(A1/24)<=12/24,A1*A5,(((12/24-A2)*24)+((A1-((12/24-A2)*24))*1.5))*A5))

PS 你不是也需要一个日期单元来检查星期六吗? =IF(WEEKDAY(day_cell)=7,Saturday-formula,RegularDay-formula)

enter image description here

答案 1 :(得分:0)

我将假设您的轮班开始和轮班结束是日期时间,否则您根本无法判断您的轮班是否在星期六。

关键的计算是根据给定的开始和结束日期时间建立加班时间的日期时间值。之后,所有的计算都非常简单。因此,在给定的一周内,如果轮班在周六或周日开始,则加班从前一个周六开始,但对于周一至周五的轮班,则从下一个周六开始。以下奇数公式查找周一至周五的前一个周六,但如果今天是周六或周日,则查找前一周的周六。然后我们再加上一周和 12 个小时以获得正确的加班时间:

=Int((B2-2)/7)*7 + Date(1900,1,7) + Time(12,0,0)

我们会将其存储在 B6 中。在此公式中,B2 是给定的班次开始日期-时间。请注意,我们可以更简单地说 =Int((B2-2)/7)*7 + 7.5。

现在您没有提到是否支付休息时间 - 我将假设它们是,因为如果没有,您还有另一个并发症,即您无法判断休息时间是在周六中午之前还是之后,并且无法判断是否扣除一个小时或一个半小时。

使用 B6 中的这个日期时间,计算加班时间很简单:

=(MAX(B4,B6)-MAX(B2,B6))*24

...我会让你把它放在一起。

以下是一些计算加班时间的示例: enter image description here

前两列显示周六开始,第一列显示一整天,并计入 6 小时的加班时间。第二次从 8:00 持续到中午,没有加班。第三个例子是星期天,我假设是一整天半。第四个也是最后一个例子是周一班次,它确实显示任何加班,因为他们必须工作到下周六才能得到加班。