Excel 如果班次开始时间在7点之前,但结束时间在7点之后,如何进行2次单独的操作

Excel 如果班次开始时间在7点之前,但结束时间在7点之后,如何进行2次单独的操作,excel,Excel,我正在尝试制作一个excel表格,我只需要输入开始和结束时间,excel就可以选择正确的工资率和我已经工作了多少小时,并输出我的收入。到目前为止,我有一个D列,代表轮班日期、月日、月、年,代表工作小时数E列,开始时间和结束时间F列,G列。我已经编写了计算工作小时数的公式,但在我居住的澳大利亚,我的工资在晚上7点后增加,在上午12点后再次增加。如果我的班次从下午5:30开始,到凌晨3点结束,有没有办法让excel自动知道它需要在晚上7点之前的工作时间乘以24.41,然后在晚上7点到凌晨12点之间的

我正在尝试制作一个excel表格,我只需要输入开始和结束时间,excel就可以选择正确的工资率和我已经工作了多少小时,并输出我的收入。到目前为止,我有一个D列,代表轮班日期、月日、月、年,代表工作小时数E列,开始时间和结束时间F列,G列。我已经编写了计算工作小时数的公式,但在我居住的澳大利亚,我的工资在晚上7点后增加,在上午12点后再次增加。如果我的班次从下午5:30开始,到凌晨3点结束,有没有办法让excel自动知道它需要在晚上7点之前的工作时间乘以24.41,然后在晚上7点到凌晨12点之间的工作时间乘以26.54等等

这些是不同时间的不同工资率:时间在单元格A1中,工资率在单元格B1中,等等

Time                    Pay Rate
Regular                 $24.41
Mon-Fri 7pm-midnight    $26.54
Mon-Fri 7midnight-7am   $27.60
Saturday                $29.30
Sunday                  $34.18
Public Holidays         $48.83

提前感谢

所有此类问题的解决方案均使用标准公式计算重叠时间段

=max(0,min(end1,end2)-max(start1,start2))
在IMO中,最好的方法是用两种方式简化它

1将穿过午夜的时间分成两部分,一部分到午夜,另一部分从午夜开始

2使用查找表将每周的工作日和工作日的时间与工资等级相匹配

然后使用数组公式进行查找和计算。因为不能像上面那样在数组公式中使用MAX和MIN,所以必须使用if语句将其写出,公式会变得相当长

=SUM((WEEKDAY(E2,2)>=PayRates!$A$2:$A$10)*(WEEKDAY(E2,2)<=PayRates!$B$2:$B$10)*24*PayRates!$E$2:$E$10*
IF(IF(G2<PayRates!$D$2:$D$10,G2,PayRates!$D$2:$D$10)-IF(F2>PayRates!$C$2:$C$10,F2,PayRates!$C$2:$C$10)<0,0,
IF(G2<PayRates!$D$2:$D$10,G2,PayRates!$D$2:$D$10)-IF(F2>PayRates!$C$2:$C$10,F2,PayRates!$C$2:$C$10)))
起始日期2

StartTime2

结束时间2

总计1

主要公式

总计2

主要公式由四列组成,当轮班时间超过午夜时,给出第二天的工资

总数

总计1+总计2


可以很容易地添加公共假日。

您能告诉我们实际开始时间/结束时间是如何放入单元格的吗?一个单元格中的时间是上午8:31到下午5:45,还是将它们分成两个单元格?它们分成两个单元格,一个用于开始时间,一个用于结束时间。如果使用VBA,可以使用DateDiff函数返回两次之间的分钟数,然后根据正确的时间段/支付率对这些分钟进行排序。但是,你应该把时间列分成两列,其中一列只包含时间格式的时间范围,不要使用像午夜这样的词。嗨,汤姆,谢谢你的帮助,但是我在输入主公式时遇到了一些麻烦,我按下ctrl+shift+enter键,它会打开一个对话框,上面写着“更新值”。听起来好像它正在尝试访问另一个工作簿。我想我忘了说工资率必须在同一本手册中的单独一页中,称为工资率。
=B2<A2
=IF(Split,1,B2)
=E2+Split
00:00
=IF(Split,B2,0)