使用today()的Excel公式

时间:2018-10-10 10:30:49

标签: excel excel-formula

我想知道是否有人可以帮助我解决这个Excel公式问题。

我有一个字段,其日期采用以下格式

2018-07-02 11:37:19
YYYY-MM-DD HH:MM:SS

在相邻列中,我有以下公式,该公式显示日期并将时间四舍五入到最接近的30分钟(如果今天是今天)或添加一些文本(如果是历史日期)。

=IF(
    A2<=TODAY()-1,
    "16 Hours Failed",
    IF(
        A2<=TODAY(),
        "16 Hours Failed Yesterday",
        FLOOR(A2,0.5/24)
    )
)

最后,我还有另一列(下面粘贴的公式),该列使用Col B来确定其是否已经失败,已经失败的工作正常。但是TODAY()函数都不起作用,我感觉这可能与Excel解释TODAY()的方式有关。谁能帮忙吗?

=IF(
     B2="16 Hours Failed",
     "Failed Already",
     IF(
         B2="16 Hours Failed Yesterday",
         "Failed Yesterday",
         IF(
             B2=TODAY(),
             "Failing Today",
             IF(
                 B2=TODAY()+1,
                 "Failing Tomorrow",
                 IF(
                     B2>=TODAY()+2,
                     "Failing After 3 Or More Days",
                     INT(B2)
                 )
             )
         )
     )
 )

1 个答案:

答案 0 :(得分:4)

FLOOR(A2, 0.5/24)向下舍入到最近的半小时。

TODAY()返回一个包含零时间成分的日期(午夜)。

对于源日期,时间从00:00:00到00:30:00,两者只会是相等的。

显然你想要

IF(
    INT(B2) = TODAY(),
    ...
    IF(
        INT(B2) = TODAY()+1,
        ...