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

如何在Excel中检查某表格列的日期是否处于另一表格列的日期范围内?

Excel日期时间匹配日出日落区间的解决方案

核心逻辑

你的需求本质是:用表格1里的带时间的日期,匹配表格2中对应日期的日出、日落时间,判断该日期时间是否落在这两个时间构成的区间内。

公式实现(分版本)

假设前提

  • 表格1的日期时间数据位于Sheet1!A2(首行为表头)
  • 表格2的日期列是Sheet2!A:A,日出时间列是Sheet2!B:B,日落时间列是Sheet2!C:C

方法1:Excel 365/2021及以上(用XLOOKUP)

在表格1的空白列(比如B2)输入公式,下拉填充即可:

=IF(AND(A2>=XLOOKUP(INT(A2),Sheet2!A:A,Sheet2!B:B),A2<=XLOOKUP(INT(A2),Sheet2!A:A,Sheet2!C:C)),"在日出日落区间内","不在区间内")
  • INT(A2):提取日期时间中的纯日期,用来匹配表格2的日期行
  • XLOOKUP:精准匹配对应日期的日出/日落时间
  • AND:验证当前时间是否在日出和日落之间

方法2:兼容所有Excel版本(用INDEX+MATCH)

如果你的Excel不支持XLOOKUP,用这个替代:

=IF(AND(A2>=INDEX(Sheet2!B:B,MATCH(INT(A2),Sheet2!A:A,0)),A2<=INDEX(Sheet2!C:C,MATCH(INT(A2),Sheet2!A:A,0))),"在日出日落区间内","不在区间内")
  • MATCH(INT(A2),Sheet2!A:A,0):找到表格2中对应日期的行号
  • INDEX:根据行号提取对应的日出/日落时间

异常处理

如果表格1的日期在表格2中无匹配记录,公式会返回#N/A,可以用IFERROR包裹处理:

=IFERROR(IF(AND(A2>=XLOOKUP(INT(A2),Sheet2!A:A,Sheet2!B:B),A2<=XLOOKUP(INT(A2),Sheet2!A:A,Sheet2!C:C)),"在日出日落区间内","不在区间内"),"无对应日期数据")

注意事项

  • 确保表格2的日期列是纯日期格式,表格1的列是日期时间格式,格式不统一会导致匹配失败
  • 提前清理表格2中的重复日期,避免MATCH返回错误的行号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 01:16:25