Excel中IF与WORKDAY函数计算工作日天数出错,请求技术协助
Excel公式错误排查与修正
核心问题
你误用了WORKDAY函数的参数逻辑:
WORKDAY(start_date, days, [holidays])的第二个参数是需添加到起始日期的工作日天数,不是目标结束日期。- 你直接传入
[@[Execution date]]时,Excel会将该日期转换为对应的日期序列号(比如07/11/2023对应序列号45233),再与起始日期的序列号(03/11/2023对应45229)相加,最终得到超大数值108566,完全不符合需求。
正确公式
根据你预期计算两个日期间工作日天数(结果为2天)的需求,应使用NETWORKDAYS函数,它专门用于计算两个日期之间的工作日总数:
=IF([@[Notification Date]]="", "TBD", NETWORKDAYS([@[Notification Date]],[@[Execution date]]))
逻辑验证
03/11/2023是周五,04、05日为周末非工作日,06日周一、07日周二为工作日,两个日期间的工作日天数正好是2天,与你的预期一致。
补充场景
如果你的需求是从起始日期往后推指定工作日天数得到结束日期,WORKDAY的正确用法应为:
=IF([@[Notification Date]]="", "TBD", WORKDAY([@[Notification Date]], 2))
该公式会返回03/11/2023往后推2个工作日的日期(即07/11/2023)。
内容的提问来源于stack exchange,提问作者user15676
相关产品推荐
相关产品推荐

