Excel多个IF,AND或OR嵌套语句 - 包含日期和时间条件

时间:2017-04-14 00:42:45

标签: excel datetime if-statement nested

我需要写一个' if'根据星期几和时间输出DAY,NIGHT或WEEKEND的声明如下:

输出 DAY 如果日期和时间周一至周五早上7点至晚上9点
输出 NIGHT 如果日期和时间周一至周四晚上9点至早上7点
输出周末如果日期和时间周五晚上9点到周一早上7点。

我的数据如下所示,以半小时为单位递增:

24/04/2015 16:30
24/04/2015 18:00
24/04/2015 18:30
24/04/2015 20:30
24/04/2015 21:00
24/04/2015 21:30
24/04/2015 23:00
24/04/2015 23:30
25/04/2015 0:00
25/04/2015 0:30
25/04/2015 1:00
25/04/2015 10:00
25/04/2015 11:30
25/04/2015 22:00
25/04/2015 22:30
25/04/2015 23:00
25/04/2015 23:30
26/04/2015 0:00
26/04/2015 0:30
26/04/2015 18:30
26/04/2015 19:00
26/04/2015 19:30
26/04/2015 20:00
26/04/2015 20:30
26/04/2015 21:00
26/04/2015 21:30
26/04/2015 23:00
26/04/2015 23:30
27/04/2015 0:00
27/04/2015 0:30
27/04/2015 1:00
27/04/2015 6:30
27/04/2015 7:00
27/04/2015 7:30

(全年共有17,000行半小时数据,所以我改变了一些日期和时间,以便它更容易使用,应该有一些数据匹配所有3日,NGHT,WEEKEND标准)

我在这里研究了这个解决方案https://stackoverflow.com/a/15754238/1602250,这是有道理的,但我无法让它发挥作用。

我已将星期几输出到第二列并尝试了这个:

= IF(AND(A2 =" Fri",A1 ="> 9:00:01 pm",A1 ="< 7:00: 01 am")," WEEKEND") - 但需要说明的是从晚上9点到周一早上7点。

我也试过这个,也没办法             = IF(OR(A2 =&#34;星期一&#34;,A2 =&#34;星期二&#34;,A2 =&#34;星期三&#34;,A2 =&#34;周四&#34;,A2 =&#34; Fri&#34;),IF(A1 =&#34;&gt;&gt; 7:00:00 am&#34;,A1 =&#34;&lt; 9:00:00 pm&#34; ,&#34; DAY&#34;,IF(和(OR(A2 =&#34;周六&#34;,A2 =&#34;太阳&#34;,&#34;周末&#34;)))< / p>

请有人帮忙,我疯了一半...

1 个答案:

答案 0 :(得分:1)

我认为您的数据在A列中,而数据类型是文本。 所以我会得到日期/时间。

  1. B栏:获取日期:= DATE(MID(A2,7,4),MID(A2,4,2),LEFT(A2,2))
  2. C栏:获取时间:=右(A2,LEN(A2)-11)
  3. D栏:请求:=IF(AND(WEEKDAY(B2)>=2,WEEKDAY(B2)<=6,TIMEVALUE(C2)>=TIMEVALUE(TEXT("7:00","HH:mm")),TIMEVALUE(C2)<TIMEVALUE(TEXT("21:00","HH:mm"))),"DAY",IF(AND(WEEKDAY(B2)>=2,WEEKDAY(B2)<=5,OR(TIMEVALUE(C2)>TIMEVALUE(TEXT("7:00","HH:mm")),TIMEVALUE(C2)>=TIMEVALUE(TEXT("21:00","HH:mm")))),"NIGHT","WEEKEND"))
  4. 请参阅附件。希望这有帮助。