将轮班数据转换为区间级数据,求Excel中K2:Q49区域公式
解决Excel轮班数据转区间级统计的公式方案
根据你的需求和表格场景(左侧为员工每日轮班记录,右侧需按时间区间统计对应员工的排班情况),以下是适配K2:Q49区域的公式方案:
场景1:轮班单元格存储含区间文本(如「早班(08:00-16:00)」)
判断是否有排班(返回√/×)
在Q2单元格输入公式,完成后向右、向下填充至K2:Q49区域:
=IF(SUMPRODUCT(--(($A$2:$A$49=K2)*(ISNUMBER(SEARCH(Q$1,$B$2:$G$49)))))>0,"√","×")
公式说明:
$A$2:$A$49=K2:精准匹配当前行的员工姓名ISNUMBER(SEARCH(Q$1,$B$2:$G$49)):检测该员工的轮班记录中是否包含当前表头的时间区间文本SUMPRODUCT(--(...)):统计符合条件的记录数,大于0则标记存在排班
统计排班天数
如果需要统计对应区间的排班天数,替换为:
=SUMPRODUCT(--(($A$2:$A$49=K2)*(ISNUMBER(SEARCH(Q$1,$B$2:$G$49)))))
场景2:轮班数据拆分存起始/结束时间(如B列存开始时间,C列存结束时间)
若左侧轮班是单独的时间字段,使用时间重叠判断公式:
=IF(SUMPRODUCT(--(($A$2:$A$49=K2)*(($B$2:$B$49<=RIGHT(Q$1,5))*($C$2:$C$49>=LEFT(Q$1,5)))))>0,"√","×")
公式说明:
LEFT(Q$1,5)提取区间起始时间(如00:00),RIGHT(Q$1,5)提取区间结束时间(如04:00)- 通过时间范围重叠判断,确认员工轮班是否覆盖当前区间
新手操作提示
- 选中目标单元格输入公式后按回车确认
- 鼠标移至单元格右下角,待光标变为十字形时,拖动完成批量填充
- 公式中的
$为绝对引用,确保拖动时数据源区域和表头引用不偏移
内容的提问来源于stack exchange,提问作者Dhiru0657
相关产品推荐
相关产品推荐

