【问题标题】:Identifying if a project is active from start and end date or active in current month in Excel在 Excel 中识别项目是否从开始日期和结束日期开始处于活动状态或在当前月份处于活动状态
【发布时间】:2018-03-03 12:08:16
【问题描述】:

我有一个简单的电子表格来跟踪当前正在进行的项目,其中两列包含一个日期——一列是项目开始日期,另一列是项目结束日期。

我还有另外两列可以让我生成当前活动或当月一直活动的项目的报告。对于本月活跃的项目列,我使用以下公式:

=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")

...但它再次只在两列中都有日期的地方拾取,如果结束日期在今天的日期之后但不是空白。

我确定我可能遗漏了一些非常明显的东西,但我想不通。任何指导表示赞赏。

编辑:另外,如果开始日期和结束日期都为空,则“当前有效”和“本月有效”单元格应保持空白

【问题讨论】:

    标签: excel date


    【解决方案1】:

    最后一个几乎可以,但你需要测试

        (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 中的开始日期是否在当前月份或之后。

    【讨论】:

    • 谢谢 - 效果很好!唯一的问题是,如果有空白行并且 H5 和 I5 都是空白的,它仍然返回“当前”。我试过了:=IF(AND(TODAY()&gt;=H5,OR(TODAY()&lt;=I5,I5="",OR(ISBLANK(H5:I5),""),"Current","Closed") 但 Excel 说我缺少括号,我看不到在哪里。
    • 我现在还发现了另一个用于测试项目在本月是否处于活动状态的公式有什么问题 - 这是一个相同的问题,缺少 I5=""。这个公式有效:=IF(OR(MONTH(H5)=MONTH(TODAY()),MONTH(I5)=MONTH(TODAY()),OR(I5="")),"Yes","No"),但有同样的问题,如果有空白行,例如列 H 和列 I 中的单元格都是空的,它仍然返回“是”。
    • 我有当前活动项目的公式:=IF(AND(H5="",I5=""),"",IF(AND(TODAY()&gt;=H5,OR(TODAY()&lt;=I5,I5="")),"Current","Closed")) 我现在唯一的问题是检查项目在当前月份是否处于活动状态的公式。这个公式:=IF(AND(H5="",I5=""),"",IF(OR(MONTH(H5)=MONTH(TODAY()),MONTH(I5)=MONTH(TODAY()),OR(I5="")),"Yes","No")) 有效,但对于发生在任何三月的日期返回“是”。这是我最近的尝试:IF(AND(H5="",I5=""),"",(OR(MONTH(H5)&amp;YEAR(H5)=MONTH(TODAY())&amp;YEAR(TODAY()),OR(MONTH(I5)&amp;YEAR(I5)=MONTH(TODAY())&amp;YEAR(TODAY())),OR(I5="")),"Yes","No"))
    • 抱歉,刚刚赶上这个。如果 H2 和 I2 均为空白,我将添加条件以将其报告为“已关闭”,然后查看当月任何时间活动的项目。
    • 您正在测试一个在当月开始或结束的项目。如果它跨越当前月份怎么办,例如它从 2018 年 2 月开始,到 2018 年 4 月结束?然后,您需要检查 3 月 31 日/之前的开始日期和 3 月 1 日/之后的结束日期,并在空白日期添加条件,并始终假设日期的顺序正确。
    猜你喜欢
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 1970-01-01
    相关资源
    最近更新 更多