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

基于项目起止日期判断特定时段项目是否活跃的公式需求

解决方案:项目活跃状态判断公式

核心逻辑

项目活跃的判定标准是:项目的时间区间(开始日 → 结束日/报告日)与目标时间区间(自然年份/财年)存在重叠。以下分两种场景给出公式,同时适配空结束日期的情况。


1. 自然年份判断(如2023年)

假设:

  • I2 = 项目开始日期
  • J2 = 项目结束日期(空值表示持续至当前报告日,用TODAY()获取当日日期)
  • 目标年份:2023年(时间范围:2023/1/1 ~ 2023/12/31)

公式:

=AND(IF(J2="",TODAY(),J2)>=DATE(2023,1,1), I2<=DATE(2023,12,31))

说明:

  • IF(J2="",TODAY(),J2):处理空结束日期,自动替换为当前报告日
  • AND(...):同时满足两个条件则返回TRUE(活跃),否则FALSE:
    1. 项目结束时间(或报告日)≥ 目标年份的起始日
    2. 项目开始时间 ≤ 目标年份的结束日

2. 财年判断(如2022-23财年,4月至次年3月)

假设目标财年为2022-23(时间范围:2022/4/1 ~ 2023/3/31),单元格定义同上。

公式:

=AND(IF(J2="",TODAY(),J2)>=DATE(2022,4,1), I2<=DATE(2023,3,31))

通用化优化(方便批量修改)

如果需要频繁切换目标年份/财年,可以把参数放到单元格里,避免重复修改公式:

自然年份通用版

假设K2单元格存放目标年份(如2023):

=AND(IF(J2="",TODAY(),J2)>=DATE(K2,1,1), I2<=DATE(K2,12,31))

财年通用版

假设K2单元格存放财年起始年份(如2022代表2022-23财年):

=AND(IF(J2="",TODAY(),J2)>=DATE(K2,4,1), I2<=DATE(K2+1,3,31))

你之前公式的问题

原公式=IF(AND(J2>DATEVALUE("31/12/2022"),I2<DATEVALUE("01/04/2024")),TRUE,FALSE)存在两个问题:

  1. 条件逻辑错误:应该判断项目区间与目标区间的重叠,而非项目结束日晚于目标区间结束、项目开始日早于目标区间开始
  2. 未处理空结束日期的情况,导致空值会被判定为不满足条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:13:27