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

Excel技术问询:如何通过公式判断日期是否在指定区间并返回预设Y/N值

嗨艾伦,我来帮你搞定这个Excel自动填充的需求!

首先咱们先明确下假设的数据布局(你可以根据自己的实际表格调整对应列):

  • 时间段数据区域:假设D列存开始日期,E列存结束日期,F列对应每个时间段的标记"Y"/"N"(比如D2:D100、E2:E100、F2:F100是你的时间段数据范围)
  • 待匹配的日期列表:在A列(从A2开始是需要判断的各个日期),咱们要在相邻的B列自动填入对应的"Y"/"N"
解决方案

方案1:Excel 365/2021 简洁版(用XLOOKUP)

在B2单元格输入以下公式,然后下拉填充即可:

=XLOOKUP(TRUE, (A2 >= $D$2:$D$100) * (A2 <= $E$2:$E$100), $F$2:$F$100, "N")

公式说明:

  • (A2 >= $D$2:$D$100) * (A2 <= $E$2:$E$100):生成一个布尔数组,检查当前日期A2是否落在某个时间段内,符合条件的位置返回TRUE
  • XLOOKUP会找到第一个TRUE对应的F列标记值;如果日期不属于任何时间段,就返回默认值"N"(你可以根据需求改成其他值,比如空文本"")

方案2:旧版本Excel兼容版(用INDEX+MATCH)

如果你的Excel版本不支持XLOOKUP,用这个数组公式:
在B2单元格输入公式后,按Ctrl+Shift+Enter完成输入(Excel 365/2021直接回车即可),再下拉填充:

=IFERROR(INDEX($F$2:$F$100, MATCH(TRUE, (A2 >= $D$2:$D$100) * (A2 <= $E$2:$E$100), 0)), "N")

公式说明:

  • MATCH(TRUE, ..., 0):找到第一个满足时间段条件的行号
  • INDEX($F$2:$F$100, ...):根据行号提取对应的"Y"/"N"标记
  • IFERROR(..., "N"):处理日期不在任何时间段的情况,返回默认值"N"

注意事项

  • 确保所有日期都是Excel可识别的日期格式,不要是文本格式(可以选中日期列,右键设置单元格格式为"短日期"或"长日期")
  • 如果存在重叠的时间段,公式会返回第一个匹配到的标记,所以如果需要优先级,记得把高优先级的时间段放在数据区域的上方
  • 推荐把时间段数据转换成Excel表格(选中区域按Ctrl+T),这样公式会自动识别新增的时间段,不用手动调整公式里的单元格范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 07:58:14