在Excel中使用IF()和TIMEVALUE()

我有以下的公式:

=IF(TIMEVALUE("14:30") - TIMEVALUE(NOW()) < TIMEVALUE("00:00"),"Past","Future")

Excel给了我错误,我单独检查了所有的公式,他们都给我的时间价值(这理论上应该足以与IF语句进行比较)。

为什么我一直在得到错误。 一些单元格格式不正确或什么? 任何帮助表示赞赏!

尝试评估公式一步一步看,如果这是你想要的。

工作公式:
=IF(TIMEVALUE("14:30") - NOW() < TIMEVALUE("00:00");"Past";"Future")

评估参数,使用[F9键]:
=IF(0,604166666666667 - 42719,6943635416 < 0;"Past";"Future")

你将永远得到"Past"作为返回值。

在Excel中的date和时间的说明

Excel中的TIME是一天中的一个比例"00:00" = 0.00"24:00" = 1.00 。 TIME的其他值是0到1之间的DECIMALS。

DATE是从第一天起的几天。 "1900-01-01" = 1"2000-01-01" = 36526 。 它总是一个INTEGER。

结合数据和时间(就像在NOW()函数中)给你一个INTEGER + DECIMAL。 当我评估NOW()它返回42719,6943635416

TIMEVALUE函数需要一个被认为是TIME的STRING / TEXT,并在<0;之间将STRING / TEXT转换为DECIMAL。 1>。

链接

MS – 如何在Excel中使用date和时间
Trump-Excel:使用Excel公式debugging识别错误(2种方法)

先将“ Now转换为string,然后使用“ Textfunction,然后按预期工作。

TEXT(NOW(),"HH:MM:SS")

最终公式:

=IF((TIMEVALUE("11:30") - TIMEVALUE(TEXT(NOW(),"HH:MM:SS"))) < TIMEVALUE("00:00"),"Past","Future")