【问题标题】:Sum hours worked between multiple time frames based on punch times and criteria基于打卡时间和标准的多个时间框架之间的总工时
【发布时间】:2020-12-15 18:42:54
【问题描述】:

我很困惑,需要你们的帮助。

我有一个打孔时间列表(表 2)及其各自的部门:

我正在尝试找出一种方法来将数据汇总/合并为这种格式(Sheet1):

C5 的解决方案将汇总表 1 中规定的部门 300(表 2 列 R)在周日(表 2 列 K)上午 12 点到凌晨 1 点(使用表 2 列 G 和 I 上的打卡时间)的总工作小时数B2.

注意:打卡时间不能超过上午 12 点。如果他们在上午 12 点之后工作,则会在下面以 12 点作为打卡时间开始新记录。

我可以编写一个公式来获取每个单独记录和时间范围的总时间,但我不想将一堆列添加到数据集中,而是将所有记录汇总在一个单元格中(Sheet1 C5)。

有没有办法用一个公式做到这一点?

谢谢!

【问题讨论】:

  • SUMIFS 很可能会做你想做的事。
  • 您能否进一步澄清一下?在这种情况下,我的总和范围是多少?
  • 同意,SUMIFS 是最简单的基于公式的解决方案,但我建议改用数据透视表
  • 你能帮我找到一个基于 Pivot 的解决方案吗?我不知道如何将打卡时间转换为一天中特定时间的工作时间。
  • 不清楚您希望如何读取每条记录。例如,假设您在表中的第一条记录,周六早上 7 点开始您有 8 小时的工作时间。您想在单元格I12 中返回一个 8,还是想将这 8 个小时的工作时间分散在I12:I19 范围内?如果是后者,那就有点复杂了。

标签: excel excel-formula


【解决方案1】:

所以这里是使用时差适应当前场景的两个日期范围的重叠公式:

=SUM((Sheet1!$R$2:$R$4=$B$2)*(Sheet1!$L$2:$L$4=C$4)*TEXT((IF(Sheet1!$J$2:$J$4<$B5,Sheet1!$J$2:$J$4,$B5)-IF(Sheet1!$H$2:$H$4>$A5,Sheet1!$H$2:$H$4,$A5))*24,"general;\0"))

必须使用 CtrlShiftEnter

作为数组公式(O365 之前)输入

Sheet1 包含

Sheet2 包含

【讨论】:

  • 感谢@Tom Sharpe,我一直在努力从您上面提到的帖子中替换 NETWORKDAYS。它工作得很好,尽管它似乎会在 12 点打卡时间记录任何记录并且没有正确计算它们。如果打卡时间超过午夜,该记录将在上午 12 点打卡,并以上午 12 点作为打卡时间开始新的记录以继续轮班。我正在努力寻找一种方法来调整以适应丢失的记录。感谢您的宝贵时间
  • 已通过将所有打卡时间更改为 1 而不是 0 来修复。谢谢!
  • 我明白你的意思 - 午夜将被视为 0 我认为对于(例如)晚上 10 点至凌晨 5 点的班次来说,它不能正常工作。很高兴你设法修复它,它最终对你有用。
猜你喜欢
  • 2021-03-14
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
相关资源
最近更新 更多