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

如何检查某一日期时间是否处于多个时间区间内?

修正公式以检查多个时间区间

你的原公式只检查第一个区间的原因是:SPLIT(B1, "|")生成的是横向的区间数组,后续嵌套SPLIT("&")得到二维数组后,INDEX(...,1)和INDEX(...,2)默认仅提取该数组第一行的起始/结束时间,因此无法遍历所有区间。

以下是两种可行的修正方案:

方案1:使用BYROW遍历每个区间

=OR(BYROW(SPLIT(B1, "|"), LAMBDA(interval, ISBETWEEN(A1, INDEX(SPLIT(interval, "&"), 1), INDEX(SPLIT(interval, "&"), 2)))))
  • 逻辑:SPLIT(B1, "|")拆分出所有区间字符串,BYROW逐个处理每个区间,拆分出起始和结束时间后用ISBETWEEN判断,最后用OR汇总所有判断结果。

方案2:用FLATTEN转换数组维度

=OR(ISBETWEEN(A1, INDEX(SPLIT(FLATTEN(SPLIT(B1, "|")), "&"),,1), INDEX(SPLIT(FLATTEN(SPLIT(B1, "|")), "&"),,2)))
  • 逻辑:FLATTEN把横向的区间数组转为纵向,再拆分出所有起始/结束时间组成二维数组,INDEX(,,1)和INDEX(,,2)提取所有起始、结束时间列,ISBETWEEN会对每一组时间区间进行判断,最后OR返回是否存在符合条件的区间。

验证示例

假设:

  • A1 = 2024-03-20 16:30:00
  • B1 = 2024-03-20 15:00:00&2024-03-20 16:00:00|2024-03-20 20:15:00&2024-03-21 15:00:00
    公式会返回FALSE(该时间不在任何区间内);若A1改为2024-03-20 21:00:00,则返回TRUE。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 22:23:20