Я уверен, что это можно сделать более аккуратным способом (вы могли бы объединить некоторые из них в еще более крупные формулы), но я получил следующее.
Не исчерпывающе проверенный, но я думаю, что он делает то, что необходимо.
Теория состоит в том, чтобы определить, какой вход у вас есть, а затем разобраться с ним, как я вижу, у вас есть переменные типа часов и диапазона.
Поэтому первые два "хелперы" столбцы являются часы-типа (В2):
=IF(RIGHT(A2,1)="M","12","24")
затем Диапазон (С2):
`= НЕ (ЕОШИБКА (FIND ("-", A2)))
У меня тогда есть четыре столбца для расчета начала и конца диапазонов как в 12-часовом, так и в 24-часовом часах (извините но они длинны!), D2, является:
=IF(MOD(IF(RIGHT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2))+0.5)*2,1)=0,IF(RIGHT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2))+0.5)-0.5,IF(RIGHT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"),LEN(SUBSTITUTE(LEFT(A2,FIND("-",A2)-2),".",":"))-2))+0.5))
Е2:
=IF(MOD(IF(RIGHT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2))+0.5)*2,1)=0,IF(RIGHT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2))+0.5)-0.5,IF(RIGHT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),2)="AM",VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2)),VALUE(LEFT(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"),LEN(SUBSTITUTE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2),".",":"))-2))+0.5))
F2 является:
=VALUE(LEFT(A2,FIND("-",A2)-2))
G2 является:
=VALUE(MID(A2,FIND("-",A2)+2,LEN(A2)-FIND("-",A2)+2))
Если вы еще не спал, мы затем перейти на разработку, если типы ударил по вашим критериям. H2 (24ч, а не все) является:
=AND(A2>=Sheet1!A2,A2<=Sheet2!A2)
I2 (12 ч и не диапазон) является:
=AND(IF(RIGHT(A2,2)="AM",VALUE(LEFT(A2,LEN(A2)-2)),VALUE(LEFT(A2,LEN(A2)-2))+12)>=Sheet1!A2,IF(RIGHT(A2,2)="AM",VALUE(LEFT(A2,LEN(A2)-2)),VALUE(LEFT(A2,LEN(A2)-2))+12)<=Sheet2!A2)
J2 (24ч и целый ряд):
=OR(AND(F2>=Sheet1!A2,F2<=Sheet2!A2),AND(G2>=Sheet1!A2,G2<=Sheet2!A2))
K2 (12 ч и является диапазоном) является:
=OR(AND(D2>=Sheet1!A2,D2<=Sheet2!A2),AND(E2>=Sheet1!A2,E2<=Sheet2!A2))
Теперь мы подошли к вашему колонку доставки, я пошел с TRUE/FALSE, а не "Да"/"Нет" это просто использует типы и результаты выше, для того, чтобы использовать правильный для правильного сценария:
=IF(B2=24,IF(C2,J2,H2),IF(C2,K2,I2))
Как Я сказал, что не был протестирован, но, надеюсь, если бы я допустил ошибки (что вполне возможно во всем этом), вы должны быть в состоянии взять логику, а затем внести необходимые корректировки.
Запланированные записи относятся только к этой строке в каждой записи времени прибытия и вылета? –
@TimEdwards: Да, это относится только к той строке времени прибытия и отправления. Плохое сравнение A1, B1 & C1. Где A - Время прибытия B - Время отправления C Планируемое время –
Будут ли диапазоны всегда быть в 12hr clock или вы получите записи, такие как 13:00 - 16:00 или 11:00. Будут ли они всегда записываться одинаково или вы иногда получите 11AM. Если вам нужно написать логическую формулу, вам нужно подумать о возможностях. –