如何在Excel中编写判断医院非工作时段的IF语句(含跨午夜场景)
医院手术时段标记解决方案
你的原公式只覆盖了19:00之后的非工作时段,漏掉了午夜00:00到次日07:59的区间——这部分同样属于“Out of Hours”。可以用OR函数把两个非工作时段的条件合并,修正后的公式如下:
方案一(文本转时间写法)
=IF(N2="","",IF(OR(N2<=--"07:59",N2>=--"19:00"),"Out of Hours","In Hours"))
方案二(TIME函数更稳定)
用TIME(hour, minute, second)函数直接构造时间值,避免文本转时间可能出现的格式兼容问题:
=IF(N2="","",IF(OR(N2<=TIME(7,59,0),N2>=TIME(19,0,0)),"Out of Hours","In Hours"))
逻辑说明
- 先判断N2单元格是否为空,为空则返回空值
- 用
OR同时检查两个非工作时段条件:- 时间≤07:59(午夜到早上7点59分)
- 时间≥19:00(晚上7点及之后)
- 满足任一条件就显示“Out of Hours”,否则显示“In Hours”
如果N2单元格包含完整日期(比如2024/5/20 02:30),公式依然有效——因为Excel中时间是日期的小数部分,判断逻辑不受日期影响。
内容的提问来源于stack exchange,提问作者Gwen Taylor
相关产品推荐
相关产品推荐

