Excel如何按工单状态筛选查找最早的开放/待处理工单日期
Excel查找开放/待处理工单最早日期的正确公式实现
原公式错误说明
你编写的=MIN(IF(B:B="Completed, Awaiting",D:D))存在两处核心问题:
- 条件逻辑错误:
B:B="Completed, Awaiting"是匹配值为Completed, Awaiting的完整字符串,不是判断「值为Open或Awaiting」的逻辑或关系,还错误引入了需要排除的完成状态相关值 - 未处理不满足条件的返回值,MIN计算时会纳入无效值导致结果错误
不同版本Excel的实现方案
方案1:Excel 365/2021及以上版本(支持动态数组)
直接使用MIN+FILTER组合,无需特殊回车确认:
=MIN(FILTER(D:D,(B:B="Open")+(B:B="Awaiting")))
如果需要处理无符合条件工单的报错场景,可以加IFERROR封装:
=IFERROR(MIN(FILTER(D:D,(B:B="Open")+(B:B="Awaiting"))),"无符合条件的工单")
逻辑说明:(B:B="Open")+(B:B="Awaiting")实现逻辑或判断,满足任意一个条件就返回1,FILTER筛选出对应行的D列日期后,MIN直接取最小值
方案2:Excel 2019及更早版本
需要使用数组公式,输入完成后按Ctrl+Shift+Enter三键组合确认(公式两侧会自动生成大括号,不要手动输入):
=MIN(IF((B:B="Open")+(B:B="Awaiting"),D:D,""))
同样可以加IFERROR处理无匹配的情况:
=IFERROR(MIN(IF((B:B="Open")+(B:B="Awaiting"),D:D,"")),"无符合条件的工单")
逻辑说明:IF判断返回符合条件的日期、不符合条件返回空文本,MIN会自动忽略空文本计算有效日期的最小值
注意事项
- 建议把整列引用(
B:B/D:D)替换为实际数据区域(比如B2:B2000/D2:D2000),可以大幅提升公式计算效率 - 需确保D列内容为标准日期格式,若为文本格式会导致MIN计算出错
内容的提问来源于stack exchange,提问作者Jason Lucas
相关产品推荐
相关产品推荐

