You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel跨午夜时间匹配IF函数失效问题求助

解决方案

核心问题分析

Excel中跨午夜的时间会被存储为「日期+时间」的数值(整数部分对应日期,小数部分对应时间,比如01/01/1900 00:03:16对应的数值是1.0022685185),而你原公式的时段判断用的是当日纯时间(数值小于1),导致跨午夜的时间无法匹配条件。


方法1:直接修改原公式(推荐)

将公式中所有的AO16替换为MOD(AO16,1),MOD函数会提取时间的小数部分(剥离日期整数部分),确保无论AO列是当日时间还是跨午夜的日期+时间,都能以纯时间值参与匹配。

修正后的公式(同时修复了原公式的标点错误):

=IF(AND(MOD(AO16,1)>$BI$11,MOD(AO16,1)<$BI$12),$BK$11,
IF(AND(MOD(AO16,1)>$BI$13,MOD(AO16,1)<$BI$14),$BK$13,
IF(AND(MOD(AO16,1)>$BI$15,MOD(AO16,1)<$BI$16),$BK$15,
IF(AND(MOD(AO16,1)>$BI$17,MOD(AO16,1)<$BI$18),$BK$17,
IF(AND(MOD(AO16,1)>$BI$19,MOD(AO16,1)<$BI$20),$BK$19,
IF(AND(MOD(AO16,1)>$BL$11,MOD(AO16,1)<$BL$12),$BN$11,
IF(AND(MOD(AO16,1)>$BL$13,MOD(AO16,1)<$BL$14),$BN$13,
IF(AND(MOD(AO16,1)>$BL$15,MOD(AO16,1)<$BL$16),$BN$15,
IF(AND(MOD(AO16,1)>$BL$17,MOD(AO16,1)<$BL$18),$BN$17,
IF(AND(MOD(AO16,1)>$BL$19,MOD(AO16,1)<$BL$20),$BN$19,
"00:00:00")))))))))

方法2:用辅助列预处理时间

如果不想修改原公式,可新增辅助列(如AP列),输入以下公式提取AO列的纯时间:

=MOD(AO16,1)

将AP列格式设置为hh:mm:ss,再把原公式中的AO16替换为AP16即可。


内容的提问来源于stack exchange,提问作者nozu1984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:11:59