You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中计算两班倒员工的每日实际工作总工时?

Excel两班制员工每日总工时计算方法

核心计算规则

  • 无论白班或晚班员工,单日总工时=当日末次登出时间 - 当日首次登录时间
  • 若当日存在多条登录/登出记录,仅取该员工当日的第一条登录时间、最后一条登出时间进行计算

公式实现(Excel 2019及以上版本)

假设数据结构:

  • A列:员工卡号
  • B列:记录时间(带日期的完整时间)
  • C列:记录类型(登录/登出)
  • D列:提取的日期(可通过公式 =INT(B2) 生成)

单个员工单日计算

  1. 提取指定员工指定日期的首次登录时间:
=MINIFS(B:B, A:A, "V2605", D:D, DATE(2023,2,1), C:C, "登录")
  1. 提取指定员工指定日期的末次登出时间:
=MAXIFS(B:B, A:A, "V2605", D:D, DATE(2023,2,1), C:C, "登出")
  1. 计算总工时:
=MAXIFS(B:B, A:A, "V2605", D:D, DATE(2023,2,1), C:C, "登出") - MINIFS(B:B, A:A, "V2605", D:D, DATE(2023,2,1), C:C, "登录")

批量计算所有员工每日工时

在E2单元格输入以下公式,下拉填充即可批量计算每行对应员工当日的总工时:

=MAXIFS(B:B, A:A, A2, D:D, D2, C:C, "登出") - MINIFS(B:B, A:A, A2, D:D, D2, C:C, "登录")

兼容旧版Excel的数组公式(Excel 2016及以下版本)

若无法使用MAXIFS/MINIFS函数,可使用数组公式实现:

  1. 首次登录时间(输入后按Ctrl+Shift+Enter确认):
=MIN(IF((A:A="V2605")*(D:D=DATE(2023,2,1))*(C:C="登录"), B:B))
  1. 末次登出时间(输入后按Ctrl+Shift+Enter确认):
=MAX(IF((A:A="V2605")*(D:D=DATE(2023,2,1))*(C:C="登出"), B:B))
  1. 总工时为上述两个公式结果相减,同样需按数组公式确认规则输入。

内容的提问来源于stack exchange,提问作者Limit Legend

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:40:18