EXCEL - 范围之间时间的 IF 语句

EXCEL - IF Statement for TIME between Ranges

我在 Excel 中使用数据透视表和数据透视图作为动态仪表板。目前我有 3 个工作班次,我想想象一下,但要做到这一点,我必须:

从我使用的 "Date & Time Cell" 中提取时间 =A2 - INT(A2) 。这里没问题

创建一个嵌套的 IF AND 公式来检查小时是否适合任何这些班次:

15:00 - 23:00 , 23:00 - 7:00 , 7:00 - 15:00

我正在使用这个:

=IF(AND(E2>=TIME(15,0,0),E2<TIME(23,0,0)),"3- 
11",IF(AND(E2>=TIME(23,0,0),E2<TIME(7,0,0)),"11 - 7","7 - 3"))

但它混淆了班次,它只显示 3-11 和 7-3 班次,好像它无法区分上午和下午...我错过了 23:00 - 7:00 转变

来自TIME documentation

The decimal number returned by TIME is a value ranging from 0 (zero) to 0.99988426, representing the times from 0:00:00 (12:00:00 AM) to 23:59:59 (11:59:59 P.M.)

换句话说,AND(E2>=TIME(23,0,0),E2<TIME(7,0,0) 等同于(四舍五入到小数点后两位)AND(E2>=0.96,E2<0.29)。因此,您的第二个 AND 公式 只能 为假。

要么将 AND 更改为 OR,要么翻转第二个 IF 逻辑:

...IF(AND(E2>=TIME(7,0,0),E2<TIME(15,0,0)),"7 - 3","11 - 7")