我有格式化的这样的时刻数据的列移位:hh:mm:ss
使用公式来确定来自时间数据
我想使返回的IF语句1,2或3对应于第一,第二或第三变速如果时间落在某些值之间。
=IF(AND(E50>8,0,0,E50<16,0,0),"First",(IF(AND(E50>=16,0,0,E50<24,0,0), "Second", "Third")))
这就是它现在的样子,但它不起作用。
我有格式化的这样的时刻数据的列移位:hh:mm:ss
使用公式来确定来自时间数据
我想使返回的IF语句1,2或3对应于第一,第二或第三变速如果时间落在某些值之间。
=IF(AND(E50>8,0,0,E50<16,0,0),"First",(IF(AND(E50>=16,0,0,E50<24,0,0), "Second", "Third")))
这就是它现在的样子,但它不起作用。
作为短公式:
=CHOOSE(INT(1+MOD(E50,1)*3),"Third","First","Second")
将
做你想做的事。
如果时间
=CHOOSE(INT(1+E50*3),"Third","First","Second")
也将这样做的时间(不包含日期),然后。
而且这个公式应该是非常快;)
编辑
使之完全 “变量” 你需要像这样(的时间表是在I51:J53 ascendenting顺序):
=INDEX($J$51:$J$53,COUNTIF($I$51:$I$53,"<="&MOD(E50,1))+IF(COUNTIF($I$51:$I$53,">"&MOD(E50,1))=3,3))
它应该是这样的:
注意:如果分手了,从晚上12点之前去过去的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)
只为案件没有被发现(这将是最后一次移位)...
补货!我花时间包括一张图片! – Jeeped
这有效,但你能解释它是如何做到的,我有点惊讶。 –
@Jeeped一个链接...和一个描述; P ...仍然,理论上我们都是错误的......第一个转变在** 8和16之间下降......这不包括8和16本身.. (MOD(E50,1)> = 2/3,“Second”,IF(MOD(E50,1)> 1/3,“First”,“Third” ))'是正确的... –
我发现这是时间转换成3班的最简单方法。加1允许excel在午夜00:59返回0.(因此在下面的公式中,选择函数的前六个结果是"C"
,指的是夜班,然后在早上6点,班次变为"A"
白班。在"R3"
是我有时间的单元格。
=CHOOSE(HOUR(R3)+1, "C", "C", "C", "C","C","C", "A", "A", "A", "A", "A", "A", "A","A","B","B","B","B","B","B","B","B","C","C")
这也行得通,如果我的班次开始时间不是正好8点,而是更像7:10:00 A.M.到下午3点10分或7:10:00至15:10:00 –
@ J.A。只需更改我从公式中借用的公式中的8/16/24即可。 – Chrismas007
'HOUR(E50)> 8'是'HOUR(E50)> = 8'吗?是否需要“小时(E50)<24”? – Jeeped