在Excel中链接多个IF语句以计算从时间的工作class次

我正在尝试根据在Excel工作表中input的时间来计算工作class次。 class次分配如下:

如果时间> = 05:30 PM&<= 01:30 AM – 第一class

如果时间> = 01:30 AM&<= 09:30 AM – 二class

如果时间> = 09:30 AM&<= 01:30 AM – 3class

我正在使用IF AND条件,但它仍然显示不正确的结果。 以下是我正在使用的公式。

=IF(AND(D2>=TIMEVALUE("05:30:00 PM"),(D2<=TIMEVALUE("01:30:00 AM"))),"1", IF(AND(D2>=TIMEVALUE("01:30:00 AM"),(D2<=TIMEVALUE("09:30:00 AM"))),"2","3")) 

Excel工作表显示班次时间

任何想法我做错了什么?

第一个问题是你的轮class定义。 由于使用less于或等于操作符,所以三个class中的时间是1:30 AM 。 这些应该更改为less于运营商,如下所示:

如果时间> = 5:30 PM&<1:30 AM – 1class

如果时间> = 1:30 AM&<9:30 AM – 2class

如果时间> =上午9:30和下午5:30 – 第三class(注意:我在这里修正了明显的错字)

第二个问题是在第一个if语句中:

 IF(AND(D2>=TIMEVALUE("05:30:00 PM"),(D2<=TIMEVALUE("01:30:00 AM"))),"1",...) 

时间不能同时大于5:30:00 PM和不到01:30:00 AM 。 Excel中的时间存储为数字。 TIMEVALUE("1:30 AM")返回0.06250TIMEVALUE("5:30 PM")返回大约0.72917 。 结果这个if语句翻译成以下内容:

 IF(AND(D2>=0.72917, D2<=0.06250), "1", ...) 

D2不能大于或等于0.72917 ,小于或等于0.06250 。 因此,这将始终返回false。

尝试重写你的代码如下:

 =IF(D2<TIMEVALUE("1:30 AM"),"1", IF(D2<TIMEVALUE("9:30 AM"),"2", IF(D2<TIMEVALUE("5:30 PM"),"3","1")))