Excel含通配符的IF语句及数值搜索:航班准点判定优化需求
解决航班起降时间分类问题
问题分析
需要调整航班时间分类规则:
- 原「On Time」保持不变
- 早到/晚到10分钟以内的统一归为「On Time」
- 早到/晚到超过10分钟的分别归为「Early」「Late」
之前用COUNTIF的思路行不通,因为COUNTIF的通配符仅用于文本匹配,无法直接对提取出的数值做大小比较。
解决方案
根据Excel版本,提供两种可行公式:
方案1:适用于Excel 365/2021(支持TEXTBEFORE函数)
=IF(E3="On Time","On Time",IF(--TEXTBEFORE(E3," Minutes")<=10,"On Time",IF(ISNUMBER(SEARCH("Late",E3)),"Late","Early")))
- 逻辑说明:
- 先判断单元格是否为「On Time」,是则直接返回
- 用
TEXTBEFORE截取" Minutes"前的文本内容,--将文本转为数值,得到实际分钟数 - 如果分钟数≤10,返回「On Time」
- 分钟数>10时,再判断文本中是否含「Late」,对应返回「Late」或「Early」
方案2:适用于所有Excel版本(兼容旧版)
=IF(E3="On Time","On Time",IF(--MID(E3,1,SEARCH(" Minutes",E3)-1)<=10,"On Time",IF(ISNUMBER(SEARCH("Late",E3)),"Late","Early")))
- 逻辑说明:
- 同样先处理原「On Time」的情况
- 用
SEARCH定位" Minutes"的位置,MID截取从开头到该位置前1位的文本,--转为数值提取分钟数 - 后续判断逻辑和方案1一致
测试示例
| 原始数据 | 公式返回结果 |
|---|---|
| On Time | On Time |
| 7 Minutes Late | On Time |
| 12 Minutes Early | Early |
| 34 Minutes Late | Late |
| 9 Minutes Early | On Time |
内容的提问来源于stack exchange,提问作者A. Sturmay
相关产品推荐
相关产品推荐

