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

如何编写公式判断指定日期是否处于假期起止日期区间内?

判断日期是否属于假期区间的公式方案

嘿,这个需求在处理考勤、日程表时超常见!我给你分享几个适用于Excel和Google Sheets的实用公式,轻松搞定“是否假期?”列的判断:

核心思路

我们要检查当前日期是否落在任意一条假期记录的开始-结束区间内,只要匹配到一个区间,就标记为YES,否则为NO。

方案1:通用公式(Excel/Google Sheets都适用)

假设你的假期记录表在Sheet1,开始日期列是A,结束日期列是B;日期表在Sheet2,待判断日期在A列,要在B列写公式:

=IF(COUNTIFS(Sheet1!$A:$A,"<="&A2,Sheet1!$B:$B,">="&A2)>0,"YES","NO")

公式解释:

  • COUNTIFS会统计同时满足两个条件的假期记录行数:
    1. 假期开始日期 ≤ 当前待判断日期(Sheet1!$A:$A,"<="&A2)
    2. 假期结束日期 ≥ 当前待判断日期(Sheet1!$B:$B,">="&A2)
  • 如果统计结果大于0,说明当前日期在某个假期区间里,返回YES;否则返回NO。

方案2:Excel 365/2021 简化版

如果你用的是新版Excel(支持动态数组),可以用更简洁的写法:

=IF(OR((A2>=Sheet1!$A$2:$A$100)*(A2<=Sheet1!$B$2:$B$100)),"YES","NO")

公式解释:

  • (A2>=Sheet1!$A$2:$A$100)*(A2<=Sheet1!$B$2:$B$100)会生成一个数组,每一行对应一个假期区间的判断结果(满足为1,不满足为0)
  • OR函数只要数组里有一个1,就返回TRUE,最终输出YES。

方案3:动态范围优化(避免手动调整行号)

如果假期记录会不断新增,建议把假期表转换成结构化表(Excel按Ctrl+T,Google Sheets选数据后点「数据」→「创建表格」),这样公式会自动识别新增的行:

假设结构化表名为HolidayList,公式可以写成:

=IF(COUNTIFS(HolidayList[开始日期],"<="&A2,HolidayList[结束日期],">="&A2)>0,"YES","NO")

注意事项

  • 确保两张表的日期都是真正的日期格式,不是文本!可以用=ISDATE(A2)检查,若返回FALSE,需要把文本转换成日期(Excel用「数据」→「分列」,Google Sheets用DATEVALUE函数)。
  • 如果假期表有空白行,建议把公式里的范围限定在实际数据行(比如Sheet1!$A$2:$A$100),避免计算空白单元格影响结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:25:26