Страницы: 1
RSS
В ВПР задать диапазон формулой
 
У меня есть довольно большая таблица, мне нужно в функции ВПР, чтобы эксель искал по определенному диапазону для каждой даты, для этого придумала вот такую вещь: =ВПР(L1178;((ЯЧЕЙКА("адрес";ИНДЕКС((N:Y);(ПОИСКПОЗ((МЕСЯЦ(M2)-2);
Z:Z;0));1))):(ЯЧЕЙКА("адрес";ИНДЕКС((N:Y);(ПОИСКПОЗ((МЕСЯЦ(M2)+2); Z:Z;0));12))));3;0) выглядит это конечно все довольно ужасно, но сейчас объясню, что там.
-Вначале я беру ячейку M2 (в ней дата) беру ее месяц и вычитаю из него 2,
потом в столбще Z нахожу номер ячейки с таким значением
и потом из таблицы N:Y выбираю название нужной мне ячейки
таким оюразом получаю начало диапазона для ВПР функции
аналошгично нахожу конец диапазона для ВПР функции
Однако, когда я пытаюсь нажать энтер, он пишет что в формуле ошибка

Если просто в одну ячейку ввести =ЯЧЕЙКА("адрес";ИНДЕКС((N:Y);(ПОИСКПОЗ((МЕСЯЦ(M2)-2);
Z:Z;0));1)) выдаст [1.xlsm]А!$N$2 как раз начало диапазона
а вдругую =ЯЧЕЙКА("адрес";ИНДЕКС((N:Y);(ПОИСКПОЗ((МЕСЯЦ(M2)+2);
Z:Z;0));12)) выдаст [1.xlsm]А!$Y$3086 как раз конец диапахона

и если пишу в формулу =ВПР(L1178;(([1.xlsm]А!$N$2):([1.xlsm]А!$Y$3086));3;0) выдает верное значение(дату)
в чем ошибка подскажите пожалуйста

Загрузила файл уже с этой же формулой в максимаьно упрощенном варианте таблицы.
Добавила формулу в текстовый вид так как она не работает в обычном формате

В моей основной таблице очень много столбцов и строк, все даты стоят, что в одной(тут желтой) и другой(тут зеленой) в порядке восзрастания, а все номера рандомно, стабильно через 5 месяцев номера повторяются, поэтому обычный ВПР не работает(находит первую дату, что мне не подходит). Решения без ВПР тоже подойдут, но я таких не придумала.(
Изменено: Katringord - 04.12.2016 21:51:49
 
Без файла могу только упростить формулу до такой
Код
=ВПР(L1178;ИНДЕКС(N:N;ПОИСКПОЗ(МЕСЯЦ(M2)-2;Z:Z;0)):ИНДЕКС(Y:Y;ПОИСКПОЗ(МЕСЯЦ(M2)+2;Z:Z;0));3;0)
 
а какой тут смысл? индекс выдает значение из ячейки, а мне нужно диапазон задать?
 
Цитата
gling написал: Без файла могу только
Вы что ищите; ищите L1178; в диапазоне
Код
((ЯЧЕЙКА("адрес";ИНДЕКС((N:Y);(ПОИСКПОЗ((МЕСЯЦ(M2)-2);Z:Z;0));1))):(ЯЧЕЙКА("адрес";ИНДЕКС((N:Y);(ПОИСКПОЗ((МЕСЯЦ(M2)+2); Z:Z;0));12))))
; в третьем столбце; точное совпадение. В итоге у Вас должно получиться одно значение. Предполагаю что при использовании моей формулы так и получилось. А Вы хотите что то другое?
Если менять дату в М2, то и результат должен меняться. Вам в файле виднее.
Цитата
а мне нужно диапазон задать
Диапазон задается вот этой частью формулы.
Код
ИНДЕКС(N:N;ПОИСКПОЗ(МЕСЯЦ(M2)-2;Z:Z;0)):ИНДЕКС(Y:Y;ПОИСКПОЗ(МЕСЯЦ(M2)+2;Z:Z;0))
Изменено: gling - 04.12.2016 21:31:06
 
Добавила пример
 
Katringord, Вы пропишите формулу без поиска диапазона, тупо укажите какой нибудь диапазон и что ищем и какой должен получиться результ.
Вы этим созданием диапазона только запутали. Ищите данные из столбца L в столбце Н, там таких данных нет. ВПР ищет в левом столбце диапазона и возвращает значения справа от этого столбца. Замените эту часть
Код
(ЯЧЕЙКА("адрес";ИНДЕКС((H:J);(ПОИСКПОЗ((МЕСЯЦ(M2)-2);J:J;0));1))):(ЯЧЕЙКА("адрес";ИНДЕКС((H:J);(ПОИСКПОЗ((МЕСЯЦ(M2)+2);J:J;0));3)))
диапазоном типа A:K.
И опишите какой результат должен получиться. По вашей формуле получается, что результатом будет, номер месяца из столбца J.
Изменено: gling - 06.12.2016 08:46:30
 
gling,Да, я перепутала создавая таблицу пример, ищу я по № из столбца O в столбец I, исправила таблицу в вопросе
 
Цитата
gling написал:
ВПР ищет в левом столбце диапазона и возвращает значения справа
Поэтому, когда ищем в столбце I, данные из столбца H функцией ВПР не отобразятся, так как это вне диапазона. Для этого создал столбец, дубликат даты.
А Ваша формула немного измененная будет выглядеть так.
Код
=ВПР(O2;ДВССЫЛ(ЯЧЕЙКА("адрес";ИНДЕКС((H:N);(ПОИСКПОЗ((МЕСЯЦ(P2)-2);J:J;0));2))&":"&ЯЧЕЙКА("адрес";ИНДЕКС((H:N);(ПОИСКПОЗ((МЕСЯЦ(P2)+2);J:J;0));7)));6;0)
На прямую, по адресам ячеек, без ДВССЫЛ не создается диапазон.
 
gling, спасибо большое, очень помогли)))
Страницы: 1
Читают тему
Наверх