通过函数判定延迟发货:双条件IF语句编写求助
解决发货延迟超1小时的统计问题
你遇到的核心问题是没同时限制「时间差的延迟方向」和「发货状态」,原来的公式只判断了时间差数值,既没区分是提前还是延迟,也没结合「延迟」状态的要求,才会出现误统计。
正确的判断逻辑
要精准统计「发货延迟超1小时」,必须同时满足两个条件:
- 实际发货时间晚于预约时间,且时间差超过60分钟
- 发货状态明确标记为「延迟」
修正后的公式示例
把两个条件用AND组合,确保只有同时满足时才返回1:
IF (HDIFF(SHIPMENT_INDIVIDUAL_MOVE_COSTING.LOAD_DATE_FIELDS.SL_LD_DROP_ACTUAL_DATE, SHIPMENT_INDIVIDUAL_MOVE_COSTING.LOAD_DATE_FIELDS.SL_LD_DROP_APPT_START_DATE, 'Minute', 'D6') > 60) AND (SHIPMENT_INDIVIDUAL_MOVE_COSTING.STATUS = '延迟') THEN 1 ELSE 0
(注:如果你的发货状态字段不是STATUS,替换成系统里对应的字段名即可)
额外验证点
如果还是出现提前发货被统计的情况,检查HDIFF的参数顺序:
- 确认
HDIFF(实际时间, 预约时间)返回正数时代表「延迟」,负数代表「提前」 - 如果参数顺序是「预约时间在前,实际时间在后」,那提前发货会返回正数,此时要改成
HDIFF(...) < -60来表示延迟超60分钟,再结合状态条件
这样就能彻底排除提前发货的误统计,精准筛选出符合要求的延迟订单。
内容的提问来源于stack exchange,提问作者Stacy Ferrari
相关产品推荐
相关产品推荐

