2016-07-19 4 views
0

У меня 3 листов в Excelсравнить диапазон времени & фиксированное время между различными листами в Excel

лист 1 содержит столбец время прихода в 24hrs формата

время прихода

11:00
22:00
05:00
09:00

S Heet 2 содержит колонки выезда времени в формате 24hrs

времени вылета

14:00
23:00
18:00
10:00

Лист 3 содержит столбец Планируемые -time в формате 24 часа

Запланированное время

15:00
18:00
3:00 - 12:00
12:00 - 16:00

Теперь я хочу формулу, если Планируемое время между прибытием времени & вылета времени затем обновите столбец ДОСТАВКА, чтобы ДА еще НЕТ.

Но, к сожалению, моя колонка с запланированным временем содержит оба диапазона времени (3:00 - 12:00) & фиксированное время (3:00).

Итак, как мне написать обобщенную формулу для обновления столбца DELIVERY? поскольку в моем столбце с запланированным временем присутствуют как временные диапазоны & фиксированное время.

+0

Запланированные записи относятся только к этой строке в каждой записи времени прибытия и вылета? –

+0

@TimEdwards: Да, это относится только к той строке времени прибытия и отправления. Плохое сравнение A1, B1 & C1. Где A - Время прибытия B - Время отправления C Планируемое время –

+0

Будут ли диапазоны всегда быть в 12hr clock или вы получите записи, такие как 13:00 - 16:00 или 11:00. Будут ли они всегда записываться одинаково или вы иногда получите 11AM. Если вам нужно написать логическую формулу, вам нужно подумать о возможностях. –

ответ

0

Я уверен, что это можно сделать более аккуратным способом (вы могли бы объединить некоторые из них в еще более крупные формулы), но я получил следующее.

Не исчерпывающе проверенный, но я думаю, что он делает то, что необходимо.

Теория состоит в том, чтобы определить, какой вход у вас есть, а затем разобраться с ним, как я вижу, у вас есть переменные типа часов и диапазона.

Поэтому первые два "хелперы" столбцы являются часы-типа (В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))

Как Я сказал, что не был протестирован, но, надеюсь, если бы я допустил ошибки (что вполне возможно во всем этом), вы должны быть в состоянии взять логику, а затем внести необходимые корректировки.

+0

спасибо за решение, однако я не смог заставить его работать. Можете ли вы поделиться листом Excel? –

+0

У меня нет Dropbox или подобного, чтобы поделиться им, поэтому я не думаю, что это вариант. Какая ошибка или не подсчитывает, как вы ожидаете? –

+0

Мои данные испытаний: Sheet1.A2 = 11:00 Sheet2.A2 = 11:55 Sheet3.A2 = 12:00 - 16:00 После применения вашей формулы: После выхода: –