我有一列时间数据格式如下:hh:mm:ss
如果时间落在某些值之间,我想制作一个返回1,2或3的IF语句,对应于第一,第二或第三班。
=IF(AND(E50>8,0,0,E50<16,0,0),"First",(IF(AND(E50>=16,0,0,E50<24,0,0), "Second", "Third")))
现在看起来像什么,但它不起作用。
答案 0 :(得分:3)
答案 1 :(得分:2)
作为一个简短的公式:
=CHOOSE(INT(1+MOD(E50,1)*3),"Third","First","Second")
会做你想做的事。
如果时间只是时间(没有日期)那么
=CHOOSE(INT(1+E50*3),"Third","First","Second")
也会这样做。
这个公式也应该非常快;)
修改强>
要使它完全“变量”你需要这样的东西(时间表是在I51:J53上升顺序):
=INDEX($J$51:$J$53,COUNTIF($I$51:$I$53,"<="&MOD(E50,1))+IF(COUNTIF($I$51:$I$53,">"&MOD(E50,1))=3,3))
看起来像这样:
注意:如果你拆分从之前的0:00到过去0:00的班次,那么表格看起来像:
12:00 AM | Third
06:01 AM | First
12:22 PM | Second
10:54 PM | Third
然后你可以跳过公式:
=INDEX($J$51:$J$54,COUNTIF($I$51:$I$54,"<="&MOD(E50,1)))
因为+IF(COUNTIF($I$51:$I$53,">"&MOD(E50,1))=3,3)
仅适用于没有找到任何内容的情况(这将是最后一次转移)......
答案 2 :(得分:1)
如果你将三个班次的开始时间放在单元格中并引用它们,就像这样简单:
=IF(AND(D13>=$D$11, D13<$E$11),"First",IF(AND(D13>=$E$11,D13<$F$11),"Second", "Third"))
答案 3 :(得分:0)
我发现这是将时间转换为3班的最简单方法。加1允许excel在午夜返回到00:59为0.(因此在下面的公式中,选择函数的前六个结果是"C"
表示夜班,然后在早上6点,班次变为{{ 1}}日班。等等。"A"
是我有时间的单元格。
"R3"