Поиск значения, если даты попадают между двумя датами

У меня есть даты окна в двух ячейках. Например:

  • a1 = 1/1/2014 8:00
  • b1 = 1/4/2014 10:00
  • c1 = 11

Где

  • А - дата начала
  • B - дата окончания
  • C - это код окна

В ячейке d1 у меня есть дата: 03.01.2014 7:00

Я хотел бы найти дату в a/b, и если d попадает между этими датами, я хотел бы, чтобы он вернул код для окна.


person user3084662    schedule 06.03.2014    source источник
comment
Вы пробовали что-нибудь до сих пор?   -  person Jerry    schedule 06.03.2014
comment
1) возможно ли, чтобы D1 попадало в два и более окна? 2) столбец C всегда содержит числа?   -  person Dmitry Pavliv    schedule 06.03.2014
comment
это vba/excel форумы вы хотите?   -  person Jon Barker    schedule 06.03.2014
comment
что вы возвращаете, если это вне дат?   -  person AnthonyLambert    schedule 06.03.2014
comment
Мне нужен код excel, пожалуйста.   -  person user3084662    schedule 06.03.2014
comment
D1 не попадет более чем в 1 окно, а C всегда содержит числа   -  person user3084662    schedule 06.03.2014
comment
это может просто сказать ложь или снаружи   -  person user3084662    schedule 06.03.2014
comment
а если ни в какую не попадает?   -  person AnthonyLambert    schedule 06.03.2014


Ответы (3)


Предполагая, что у вас есть несколько «окон», перечисленных в порядке без пробелов, возможно, попробуйте ПРОСМОТР, например

=LOOKUP(D1,A1:C10)

см. пример

person barry houdini    schedule 06.03.2014
comment
это не проверяет, находится ли он в диапазоне? - person AnthonyLambert; 06.03.2014
comment
Предполагая, что между диапазонами и диапазонами в порядке возрастания нет пробелов, вам действительно не нужно проверять диапазоны - поиск сопоставляет D1 с соответствующим значением столбца A и возвращает правильное число из столбца C. Если D1 может не находиться ни в одном диапазоне, вы можно добавить простой ЕСЛИ, например =IF(D1>B10,NA(),LOOKUP(D1,A1:C10)) - person barry houdini; 06.03.2014

Вы можете использовать это, оно будет работать, даже если даты не в порядке, если значения в столбце C являются числовыми. Он вернет 0, если нет совпадения

=SUMPRODUCT((D1>=A1:A10)*(D1<=B1:B10)*C1:C10)
person CRondao    schedule 06.03.2014
comment
Я ждал, пока кто-нибудь предложит СУММПРОИЗВ или СУММЕСЛИМН, +1 - лично я всегда предпочитаю использовать формулы типа поиска, когда требуется одно значение - их также можно использовать для извлечения текстовых значений... но у этого подхода есть преимущества, например. могут быть пробелы, не нужно сортировать, как вы говорите - person barry houdini; 06.03.2014
comment
Да, в конце концов, если столбец C не является числовым, мы добавляем совпадение для поиска значения 1, а затем используем индекс для получения значения. Но в таком случае это будет формула массива... - person CRondao; 06.03.2014

Cell 

a1      = 1/1/2014 8:00

b1      = 1/4/2014 10:00

c1      = 11

d1      = 1/3/2014 7:00

e1      =IF(AND($D$1-A1>0,B1-$D$1>0),C1,"outside")

добавить добавить другие строки, заполняя ячейки a1:c52

person AnthonyLambert    schedule 06.03.2014
comment
У меня 52 окна... так что мне пришлось бы делать 52 оператора if, которые вложены друг в друга. - person user3084662; 06.03.2014
comment
Вот почему ПРОСМОТР хорош - вы можете проверить все 52 окна за один раз - см. Мой ответ - person barry houdini; 06.03.2014
comment
ваш поиск не проверяет, находится ли он между двумя датами. - person AnthonyLambert; 06.03.2014
comment
Ваш вопрос мог бы быть более ясным. Вы просто хотите посмотреть, какие окна в нескольких строках не существуют в вашем вопросе, например. а1:с52 ? каждая строка - это отдельное окно? - person AnthonyLambert; 06.03.2014
comment
если вы хотите выполнить поиск, найдите первую строку, где $Cn==$En. - person AnthonyLambert; 06.03.2014
comment
52 окна? Они недели? - person barry houdini; 06.03.2014