У меня есть 2 листа в Excel.

Одно поле имеет поля даты.

например A-1 Date1

2-й лист у меня есть диапазоны дат с идентификаторами.

A-1 StartDate A2-EndDate A3-идентификатор диапазона дат

Мне нужно создать новое поле на первом листе, который будет содержать идентификатор диапазона Date1.

Например, на втором листе у меня есть диапазон A1-1 мая 2017 года A2-May 30 2017 года A3-7

На первом листе А1-3 мая 2017 года. Поэтому я хочу иметь новый столбец на моем первом листе, который будет иметь значение 7.

Как я могу сделать это в Excel?

1 ответ1

2

Как уже было сказано @Ron Rosenfeld, если диапазон в Sheet2 включает все даты в Sheet1 и нет перекрытия, простой VLOOKUP должен работать. Однако, если ваш Date RAnge в Sheet2 не обязательно в порядке возрастания и с пробелами между ними и, возможно, перекрываются. Попробуйте это решение. Ограничение состоит в том, что он должен возвращать первый идентификатор диапазона для диапазона дат, в котором данные из листа 1 находятся в пределах диапазона.

В этом примере Sheet1 имеет даты в столбце A1:A10. Лист 2 имеет начальную дату в A1:A7 конечную дату в B1:B7 и идентификатор диапазона в C1:C7.

В ячейку B1 Sheet1 поместите следующую формулу массива.

=IF(ISERROR(INDEX(Sheet2!$C$1:$C$7,MATCH(1,IF(A1>=Sheet2!$A$1:$A$7,IF(A1<=Sheet2!$B$1:$B$7,1,0)),0))),"Not Found",INDEX(Sheet2!$C$1:$C$7,MATCH(1,IF(A1>=Sheet2!$A$1:$A$7,IF(A1<=Sheet2!$B$1:$B$7,1,0)),0)))

После этого нажмите CTRL+SHIFT+ENTER, чтобы сделать формулу массива. Теперь вы увидите формулу в фигурных скобках в адресной строке. Теперь перетащите его вниз до нужных строк. Теперь столбец B должен получить соответствующие идентификаторы диапазона с листа 2, где дата в столбце A попадает в диапазон.

Формула основана на проверке вложенных IF для возврата массива TRUE, FALSE на основе диапазона сопоставления и использования внешнего INDEX-MATCH для извлечения первой позиции совпадения 1 и возврата значения в этой позиции из столбца Range ID.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .