Ken希望根据一天中的时间显示单元格的内容。例如,如果单元格C1包含NOW函数(针对一天中的时间),则他希望在另一个单元格中使用公式来检查该时间。如果在下午5:00之前,则该公式将显示单元格E1的内容。

如果时间在下午5:00之后,则该公式将显示单元格F1的内容。 Ken不确定如何计算IF语句,以便正确检查时间。

完成此任务的关键是记住Excel如何在内部存储时间和日期。当您使用NOW函数时,它将返回代表当前日期和时间的序列号。小数点左侧的序列号中的所有内容均为日期,右侧的所有内容为时间。在进行比较之前,请先删除日期部分,然后再比较一个苹果(可以这么说)。

摆脱序列号日期部分的一种方法是:

=IF(C1-INT(C1)<TIME(17,0,0),E1,F1)

对于您在参数中指定的小时,分​​钟和秒数,TIME函数仅返回日期/时间序列号的时间部分。由于您希望下午5:00,因此只需要将小时数部分设置为17。

剥离序列号日期部分的另一种方法是使用MOD功能,方法是:

=IF(MOD(C1,1)<TIME(17,0,0),E1,F1)

函数将C1中的值除以1后返回余数。

在这种情况下,余数就是小数点右边的所有内容,即时间。

但是,进行比较的最简单方法可能是完全跳过C1中值的所有数学运算。而是以这种方式利用HOUR函数:

=IF(HOUR(C1)<17,E1,F1)

HOUR函数检查单元格C1中的日期/时间序列号,并返回0到23的值,具体取决于该序列号表示的一天中的小时。将此与17(每小时5:00 pm的值)进行比较,您的公式可以根据一天中的时间显示所需的值。

重要的是要记住,仅当工作表更新时,NOW函数(您的公式所依赖的)才更新。这意味着,如果您的工作表在下午4:55更新,然后在下午5:10才更新,那么在那15分钟内,该公式将返回“ 5:00 pm之前”值,因为它尚不知道是下午5:00之后直到重新计算。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12889)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。