SUMIF 每天开始时间和结束时间之间的所有时间

SUMIF 每天开始时间和结束时间之间的所有时间

我有一个有趣的问题,我真的很难解决,并且觉得这应该可以通过某种方式使用 SUMIFS 来实现!

我有以下内容(如图所示):

截屏

我有许多任务需要在不同的日子完成。每个任务都有单独的行,并且每个任务都有特定的持续时间。

在“第 1 天”,我在 C 列中输入第一个任务的持续时间,它会自动计算出 D 列的答案(简单来说 B+C=D)。

  • 任务 1:09:00 - 09:30

在“第二天”,我有三个任务要完成:

  • 任务 1:09:00 - 10:00
  • 任务 2:10:00 - 12:00
  • 任务 3:12:00 - 22:00

我想在第二个表格(FH)中计算出工作时间内(09:00 到 17:00 之间)的总小时数以及工作时间外(09:00-17:00 以外的小时数)的总小时数,如 G 列和 H 列所示。

F 列的公式提取所有唯一的日期数字:

=IFERROR("" & INDEX($A$3:$A$12, MATCH(0,COUNTIF($F$1:F1, $A$3:$A$12), 0)),"")

答案1

现在,我已通过添加一个额外的辅助列来解决这个问题,该辅助列允许我计算非工作时间方面。然后,我可以对非工作时间总数进行求和,并得到工作时间答案,我只需从总小时数中减去非工作时间结果即可。

计算我的下班时间的公式(可能是一种更优雅的方式......) - 例如使用 E 列作为我的辅助列:

=SUM(IF(D3<TIME(9,0,0),D3-B3,IF(B3<TIME(9,0,0),TIME(9,0,0)-B3,0)),IF(B3>TIME(17,0,0),D3-B3,IF(D3>TIME(17,0,0),D3-TIME(17,0,0),0)))

计算“天数”(F 列):

=IFERROR("" & INDEX($A$3:$A$12, MATCH(0,COUNTIF($F$1:F1, $A$3:$A$12), 0)),"")

为了计算小时数(G 列),我也将其四舍五入到最接近的 2:

=IF((SUMIF($A$2:$A$12,F2,$C$2:$C$12)*24)=0,"",CEILING((SUMIF($A$2:$A$12,F2,$C$2:$C$12)*24)-H2,2))

要计算小时数(H 列):

=IF((SUMIF($A$2:$A$12,F2,$E$2:$E$12)*24)=0,0,SUMIF($A$2:$A$12,F2,$E$2:$E$12)*24)

相关内容