Excel分组首行首入时间与末行末次退出时间获取公式问询
门禁报表:员工首次进入与最后退出时间差公式
先明确假设的表格结构(你可以根据实际情况替换列标识):
- 员工唯一标识(如工号)在 A列,I40对应的员工工号在
A40单元格 - 进出类型标记(如"进入"/"退出")在 B列
- 进入时间记录在 D列
- 退出时间记录在 F列
1. 单独获取首次进入时间的公式
要定位当前员工的最早进入时间,用MINIFS函数筛选匹配条件的最小时间:
=MINIFS(D:D, A:A, A40, B:B, "进入")
这个公式会在D列所有记录里,找到A列等于当前员工工号(A40)且B列标记为"进入"的最小时间,也就是首次进入时间。
2. 单独获取最后退出时间的公式
要定位当前员工的最晚退出时间,用MAXIFS函数筛选匹配条件的最大时间:
=MAXIFS(F:F, A:A, A40, B:B, "退出")
这个公式会在F列所有记录里,找到A列等于当前员工工号(A40)且B列标记为"退出"的最大时间,也就是最后退出时间。
3. I40单元格最终时间差公式
把两个公式组合起来,直接计算差值(你已经掌握日期差计算,这里组合即可):
=MAXIFS(F:F, A:A, A40, B:B, "退出") - MINIFS(D:D, A:A, A40, B:B, "进入")
可选:处理无有效记录的情况
如果存在员工当天只有进入没有退出,或者只有退出没有进入的情况,可以用IFERROR返回友好提示:
=IFERROR(MAXIFS(F:F, A:A, A40, B:B, "退出") - MINIFS(D:D, A:A, A40, B:B, "进入"), "无有效进出记录")
内容的提问来源于stack exchange,提问作者glenho123




