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

求助:用IF函数按列顺序计算起始日期与首个非空日期的天数差

解决Excel多列优先顺序计算日期差问题

问题分析

你需要按Compliance→Training→COMPLETED→Cancel的优先级,找到第一个非空的日期列,计算该列日期与Created列的天数差;若所有列都为空则返回空值。你之前的IFS公式逻辑顺序错误,导致无法得到正确结果。

正确公式方案

方案1:使用IFS函数(兼容多数Excel版本)

=IFS(NOT(ISBLANK([@Compliance])), DAYS([@Compliance], [@Created]),
     NOT(ISBLANK([@Training])), DAYS([@Training], [@Created]),
     NOT(ISBLANK([@COMPLETED])), DAYS([@COMPLETED], [@Created]),
     NOT(ISBLANK([@Cancel])), DAYS([@Cancel], [@Created]),
     TRUE, "")
  • 逻辑说明:IFS按从上到下的顺序判断条件,只要某一列非空,就计算该列与Created的天数差;如果前面所有列都为空,最后用TRUE匹配,返回空值。

方案2:使用XLOOKUP函数(适用于Excel 365/2021及以上版本)

如果你的Excel版本支持XLOOKUP,可以用更简洁的公式:

=LET(
    cols, CHOOSECOLS([@], "Compliance", "Training", "COMPLETED", "Cancel"),
    first_nonblank, XLOOKUP(TRUE, NOT(ISBLANK(cols)), cols, "", 0, 1),
    IF(first_nonblank="", "", DAYS(first_nonblank, [@Created]))
)
  • 逻辑说明:先用CHOOSECOLS按指定顺序提取目标列,再用XLOOKUP找到第一个非空值,最后判断是否为空,不为空则计算天数差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:33:11