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

Excel双列周/日格式日期范围校验异常求助

Excel日期范围校验问题解决办法

原公式存在的问题

  1. 引号语法错误:公式中多处引号未正确闭合(如A2>"in 1w0d缺少结束引号),导致公式无法正常解析。
  2. 字符串比较逻辑错误:Excel字符串按字符ASCII顺序比较,两位数周数(如24)和一位数(如2)的字符串会出现反向判断(例如"in 2w0d"会被判定为大于"in 24w0d"),无法正确识别周数大小。
  3. 未结合天数判断:直接比较完整字符串无法精准区分1w0d和1w3d这类周数相同但天数不同的情况。

正确解决方案

方案1:Excel 365/2021及以上版本(推荐)

使用TEXTBEFORE和TEXTAFTER函数提取周数和天数,转换为总天数后判断范围:

=IF(AND(
    (--TEXTBEFORE(TEXTAFTER(A2," "),"w")*7 + --TEXTBEFORE(TEXTAFTER(A2,"w"),"d"))>7,
    (--TEXTBEFORE(TEXTAFTER(A2," "),"w")*7 + --TEXTBEFORE(TEXTAFTER(A2,"w"),"d"))<168,
    (--TEXTBEFORE(TEXTAFTER(B2," "),"w")*7 + --TEXTBEFORE(TEXTAFTER(B2,"w"),"d"))>7,
    (--TEXTBEFORE(TEXTAFTER(B2," "),"w")*7 + --TEXTBEFORE(TEXTAFTER(B2,"w"),"d"))<168
), "Between 1 week and 24 weeks", "Not between")
  • 逻辑说明:将xwyd格式转换为总天数(x*7 + y),判断总天数是否严格大于7天(1w0d)且严格小于168天(24w0d),两列同时满足则输出指定文本,否则输出"Not between"。

方案2:旧版Excel(无TEXTBEFORE/TEXTAFTER)

使用MID和SEARCH函数提取周数和天数:

=IF(AND(
    (--MID(A2,SEARCH(" ",A2)+1,SEARCH("w",A2)-SEARCH(" ",A2)-1)*7 + --MID(A2,SEARCH("w",A2)+1,SEARCH("d",A2)-SEARCH("w",A2)-1))>7,
    (--MID(A2,SEARCH(" ",A2)+1,SEARCH("w",A2)-SEARCH(" ",A2)-1)*7 + --MID(A2,SEARCH("w",A2)+1,SEARCH("d",A2)-SEARCH("w",A2)-1))<168,
    (--MID(B2,SEARCH(" ",B2)+1,SEARCH("w",B2)-SEARCH(" ",B2)-1)*7 + --MID(B2,SEARCH("w",B2)+1,SEARCH("d",B2)-SEARCH("w",B2)-1))>7,
    (--MID(B2,SEARCH(" ",B2)+1,SEARCH("w",B2)-SEARCH(" ",B2)-1)*7 + --MID(B2,SEARCH("w",B2)+1,SEARCH("d",B2)-SEARCH("w",B2)-1))<168
), "Between 1 week and 24 weeks", "Not between")
  • 逻辑说明:通过SEARCH定位空格、w、d的位置,用MID提取周数和天数,转换为总天数后进行范围判断,逻辑与方案1一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:55:17