Как получить по формуле несколько значений из списка по заданному критерию
Категория: Приемы и советы, Формулы и функции | Опубликовано 02-04-2014
|14
Такие замечательные функции, как ВПР, ПОИСКПОЗ+ИНДЕКС, ГПР позволяют по известному критерию найти только одно значение из списка: самое первое при просмотре сверху вниз для вертикальных таблиц или самое первое при просмотре слева направо при просмотре слева направо. А что делать, если нужно получить не одно, а все значения. Например, выбрать для каждой компании объекты, которые ей подчиняются и не с помощью фильтрации, а именно по формулам. Найдем ответ и на эту задачу!
Решение этой задачи будет с использованием формулы массива, поэтому необходимо заранее выделить предполагаемый диапазон ячеек (можно с запасом) и написать формулу, завершив её формулой массива, т.е. нажав клавиши Ctrl+Shift+Enter:
Сперва в ответ получаем значения из таблицы, а когда они заканчиваются, то сообщение об ошибке. Подобное, как и всегда, можно убрать с применением функции ЕСЛИОШИБКА.
Разберем формулу “по косточкам”:
- $C$2:$C$16 – диапазон ячеек-результата, т.е. объекты.
- НАИМЕНЬШИЙ(Массив;K) – возвращает k-е наименьшее значение в множестве данных:
Массив определяется по формуле: ЕСЛИ(D2:D16=$F$2;СТРОКА(D2:D16)-СТРОКА($D$1);””), т.е. проверяется в ячейках D2:D16 соответствие выбранной компании (критерий) в ячейке F2, а затем определяются позиции (номера по порядку) в выделенной области, но так как диапазон выделен без заголовков (с ячейки D2), то необходимо скорректировать на строку-заголовок, т.к. СТРОКА($D$1), а в случае если совпадение критерия не найдено, то позиция не определяется – “”.
K – позиция в диапазоне данных.
Окончательно формула будет выглядеть:
В этом случае, порядок расположения объектов следует сверху вниз. Если требуется обратный порядок, т.е. снизу вверх, то функцию НАИМЕНЬШИЙ надо заменить на НАИБОЛЬШИЙ:
В случае, если ответ необходимо получать данные то одного столбца, то другого, то необходимо расширить массив в функции ИНДЕКС и определить номер столбца с помощью функции ПОИСКПОЗ:
11.04.2014 (03:57)
Мощная формула! спасибо огромное
11.05.2014 (19:08)
СУПЕР! То что нужно!!! СПАСИБО огромное!!! Как Вы до этого всего доходите??? )))
12.05.2014 (12:24)
С чувством, с толком, с расстановкой 🙂
14.05.2014 (13:18)
ой… какая прелесть…
15.05.2014 (03:57)
Применил к своей таблице – и … работает!
13.08.2014 (13:49)
Присоединяюсь. Всё выше сказанное работает отлично.
08.01.2015 (07:08)
Не могу сказать, что решение не очень простое, но разобраться можно!
21.04.2015 (21:46)
Спасибо! Круто! Подскажите, каким образом доработать формулу, чтобы она выводила значения не только по одному критерию (компания), а по двум (и более, если возможно)???
22.04.2015 (00:30)
Алексей, надо думу думать – так сходу не могу сказать 🙂
10.11.2015 (21:56)
Огого какая мощная формула!
07.09.2016 (18:27)
Мегамощная формула.
13.03.2017 (21:47)
Да уж, такое и не приснится!
05.07.2019 (16:28)
А как нужно изменить формулу, чтобы результат выдавался не в столбец, а в строку?
04.08.2019 (23:56)
В функции НАИМЕНЬШИЙ в последнем аргументе разницу с применением функции СТРОКА заменить на СТОЛБЕЦ