公式IF之间的时间间隔

时间:2019-11-01 11:56:36

标签: excel sharepoint formula

当前使用计算出的SharePoint列(使用相同的Excel公式)

我有一个“登录”列,显示人员登录的日期/时间。我还有另一列“ Late Flag”,它们将显示是否晚。有时一天中会有多次签入/签出,因此我需要公式仅将它们标记为在特定时间段(上午9:35:00至上午10:15:00)之间。我尝试了几种不同的公式-但是它们不断产生意想不到的结果(就像它们都显示得很晚一样,如果不是这样的话)。

例如:

=IF(AND([SignIn]>"9:35:00 AM",[SignIn]<"10:15:00 AM"]),"Late","")

This shows my column setup

https://i.stack.imgur.com/8Ex4b.png

我有一个用于登录的日期/时间列,一个文本行用于后期标记

2 个答案:

答案 0 :(得分:1)

您的数据很可能会转换为时间值,并显示为“ 9:36:00 AM”,但是当选择时,真正的单元格值将为“ 09:36:00”,这是因为excel已将其识别为时间并将其转换为一个。但是,在您的公式“ 9:35:00 AM”中将是一个字符串(文本值),该字符串永远不会与时间值匹配。为了解决这个问题,您可以在公式中使用TIMEVALUE(来转换它,就像这样的时间:

=IF(AND(A1>TIMEVALUE("9:35:00"),A1<TIMEVALUE("10:15:00 AM")),"Late","Not")

此外,单元格中的时间实际上可能是文本,不能与任何开始的时间值进行比较。这使事情复杂化,但并没有太多,只需在其周围加上TIMEVALUE(

=IF(AND(TIMEVALUE(A1)>TIMEVALUE("9:35:00"),TIMEVALUE(A1)<TIMEVALUE("10:15:00 AM")),"Late","Not")

答案 1 :(得分:0)

使用下面的公式来实现。

=IF(AND(TIME(HOUR([SignIn]),MINUTE([SignIn]),SECOND([SignIn])) > TIME(9,35,0),TIME(HOUR([SignIn]),MINUTE([SignIn]),SECOND([SignIn]))<TIME(10,15,0)), "Late", "")

更多信息:TIME function

enter image description here