如何设计Excel公式标记班次间隔过短的员工并预警排班冲突
Excel排班冲突预警解决方案
默认你表述的A行、B行实际为Excel的A列、B列,数据从第2行开始(首行为表头),单班次固定时长3小时,可通过以下两种方案实现需求:
方案1:辅助列输出√/×标记
在D2单元格输入以下公式,下拉填充到所有数据行即可:=IF(COUNTIFS(B:B,B2,A:A,">="&A2-TIME(3,0,0),A:A,"<"&A2)>0,"×","√")
公式逻辑说明:
- 统计和当前行员工姓名相同、且班次开始时间落在「当前班次开始时间往前推3小时」到「当前班次开始时间」区间内的历史排班数量
- 若统计结果大于0,说明存在时间重叠的排班,返回×代表冲突,否则返回√代表正常
方案2:条件格式自动高亮冲突行
不用额外加辅助列,输入姓名后冲突行自动标红,更直观:
- 选中B列所有要录入员工姓名的单元格区域
- 新建条件格式,选择「使用公式确定要设置格式的单元格」
- 输入公式:
=COUNTIFS(B:B,B2,A:A,">="&A2-TIME(3,0,0),A:A,"<"&A2)>0 - 设置你想要的高亮格式(比如红色填充)后保存即可
如果你的班次时长不固定,可以把公式里的TIME(3,0,0)替换为对应班次时长所在的单元格引用即可。
内容的提问来源于stack exchange,提问作者Kakakarsa
相关产品推荐
相关产品推荐

