我有一个简单的电子表格来跟踪当前正在进行的项目,其中两列包含日期 - 一个是项目开始日期,另一个是项目结束日期。
我还有两列,使我能够生成当前活动或在当月活跃的项目的报告。对于当前月份中处于活动状态的项目列,我使用此公式:
=IF(OR(MONTH(H5)=MONTH(TODAY()),MONTH(I5)=MONTH(TODAY())),"Yes","No")
这将选择当前月份中具有开始日期或结束日期的项目,但不包括具有开始日期但没有结束日期的项目,这意味着项目正在进行中。我尝试过这个公式,在各种变化中,我认为应该有效:
=IF(OR(MONTH(H5)=MONTH(TODAY()),MONTH(I5)=MONTH(TODAY()),(ISBLANK(I5))),"Yes","No")
...但这只是每行返回“否”。我知道我需要一个公式来测试任一列中的日期是否在当前月份,或者如果开始日期在当前月份但是结束日期是空白的,但我无法弄清楚公式是什么。
同样,我有另一个列显示项目当前是否处于活动状态,并且我正在使用此公式来测试今天的日期是否在开始日期和结束日期列之间的日期之间:
=IF(AND(TODAY()>=H5,TODAY()<=I5),"Current","Closed")
再次,只要两列中都有一个日期,这个工作正常,但如果结束日期为空白,再次意味着项目正在进行,则当它应该返回“当前”时返回“关闭”,并且我再也不能找出正确的公式。
最接近我试过的结果(但不是我想要的结果)是:
=IF(AND(TODAY()>=H5,TODAY()<=I5)*OR($H5<TODAY(),$I5=""),"Current","Closed")
...但是,它只会在两列中都有日期的情况下进行,如果结束日期在今天的日期之后,但不是空白。
我敢肯定我可能会遗漏一些令人眼花缭乱的东西,但我无法弄明白。任何指导赞赏。
编辑:此外,如果开始日期和结束日期都为空,则“当前活动”和“活动本月”单元格应保持空白
最后一个几乎没问题,但你需要测试
(1A) Start date on or before today
AND
(1B) Start date not blank
AND
(2A) End date on or after today
OR
(2B) End date blank.
导致
=IF(AND(AND(TODAY()>=H2,H2<>""),OR(TODAY()<=I2,$I2="")),"Current","Closed")
要查看当前月份项目是否处于活动状态,我会在两个时间段内使用标准重叠公式,但首先测试开始日期是否为空(在这种情况下将结果设置为空白):
=IF(H2="","",IF(MIN(I2,EOMONTH(TODAY(),0))>=MAX(H2,EOMONTH(TODAY(),-1)+1),"Current","Not Current"))
如果I2为空,则MIN函数将忽略它,因此公式将仅测试H2中的开始日期是在当月还是当月之后。