Green-sell.info

Новые технологии
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Функция поискпоз в excel

Как используется функция ПОИСКПОЗ в Excel

Добрый день!

В этой статье мы поговорим и рассмотрим заложенные возможности, и варианты как применяется функция ПОИСКПОЗ. Эта функция является в некоторых случаях альтернативой, в некоторых случаях, функции ВПР в возможностях вертикального поиска значений. В некоторых случаях функция ПОИСКПОЗ более гибкая и имеет свои особенности, которые возводят ее на первое место.

Итак, знакомство начнём прямо сейчас, и первым шагом будет, знакомство с орфографией функции ПОИСКПОЗ. Эта функция ищет значение указанное вами и возвращает позицию полученного значения в диапазоне. К примеру, у нас есть диапазон B1:B3 в котором прописаны значения: Январь, Февраль, Март и последующая формула должна вернуть цифру 2, поскольку значение «Февраль», является вторым элементом в перечне.

=ПОИСКПОЗ(«Февраль»;B2:B13;0)

Синтаксис функции ПОИСКПОЗ

Как видно из примера функция ПОИСКПОЗ имеет следующий синтаксис, который будем рассматривать более, подробнее:

ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления]), где:

  • «Искомое_значение» — этот аргумент отвечает за данные, которые вы ищите. Этими данными могут быть чиста, текст, любое логическое значение или просто ссылка на ячейку.
  • «Просматриваемый_массив» — это аргумент показывает диапазон ячеек, где будет производиться поиск;
  • «Тип_сопоставления» — этот аргумент позволяет узнать функции ПОИСКПОЗ, о том, какое совпадение искать: приблизительное или точное:

  • 1 или же без аргумента – будет искать максимальное значение, которое равно или же меньше искомого. В обязательном порядке массив, который просматривает функция ПОИСКПОЗ, вы должны упорядочить по возрастанию, от меньшего к большему.
  • – возвращает первое же значение, которое соответствует искомому. Этот аргумент позволяет произвести точный поиск.
  • -1 – этот аргумент найдет самое наименьшее значение, которое равняется или больше, нежели значение, которое ищете. В этом случае данные нужно упорядочить по убыванию от большого к малому.

Может быть, польза, которую приносит функция ПОИСКПОЗ, может и показаться сомнительной, но замечу что, эта функция ищет и возвращает относительное положение в массиве значения, которое мы ищем. А это значение, является основным для аргументов функции ИНДЕКС, которую можно использовать в связке с функцией ПОИСКПОЗ.

Преимущества функции ПОИСКПОЗ

Первым преимуществом при использовании функции ПОИСКПОЗ и ее комбинации с другими функции (например, функция ИНДЕКС), это возможность поиска справа налево. Это отличительная черта от функции ВПР, так как она не может просматривать влево.

Вторым преимуществом является возможность удалять и добавлять столбики в таблицу поиска. Я имею в виду, безопасность этого процесса для работы функции ПОИСКПОЗ, удаление не влияет на корректность работы формулы. А вот формула ВПР может возвращать ошибки или попросту не работать, так как синтаксис формулы требует указывать весь диапазон, а также номер столбика для извлечения значения.

Третьим преимуществом – это отсутствие ограничение на длину значения, которое ищет функции ПОИСКПОЗ, в 255 символов. Ограничение для нее нет. А в функции ВПР, значение, которое вы ищете, и если оно превышает указанную величину, то вы получите ошибку #ЗНАЧ.

Четвёртое преимущество – это увеличенная скорость работы. В принципе для тех, кто работает с небольшими таблицами, ускоренная производительность незаметна, а вот уже при тысячах строк и сотнях формул, работа функции ПОИСКПОЗ самостоятельно или в тандеме с функцией ИНДЕКС будет работать, судя по данным в авторитетных изданиях, относительно функции ВПР на 13-15% быстрее. Так как проверка каждого значения в диапазоне значений вызывает отдельно функцию ВПР, а это значит что чем больше данных и формул в массиве, тем более неторопливо работает Excel.

Примеры работы функции ПОИСКПОЗ

Перейдем от теории к практике и рассмотрим несколько примеров, как работает функция ПОИСКПОЗ:

Найти СРЗНАЧ, МАКС, МИН с помощью комбинации функций ПОИСКПОЗ и ИНДЕКС

Функция ПОИСКПОЗ позволяет вкладывать в себя другие функции, и с помощью этой возможности вы можете найти максимальное, минимальное или самое ближайшее к среднему значению (статистические функции), примеры:

  1. Функция МИН: =ИНДЕКС($C$2:$C$9;ПОИСКПОЗ(МИН($I$2:I$9);$I$2:I$9;0));
  2. Функция МАКС: =ИНДЕКС($C$2:$C$9;ПОИСКПОЗ(МАКС($I$2:I$9);$I$2:I$9;0));
  3. Функция СРЗНАЧ: =ИНДЕКС($C$2:$C$9;ПОИСКПОЗ(СРЗНАЧ($I$2:I$9);$I$2:I$9;1))

Каждая функция возвращает нужное нам значение.

Поиск функцией ПОИСКПОЗ с левой стороны

Ранее я говорил, что функция ВПР не дружит с левой стороной, а значит, будем использовать функцию ПОИСКПОЗ в тандеме с функцией ИНДЕКС, так как они более гибкие и им не играет роли место расположения столбца. Рассмотрим на примере выбора, на каком месте по продажам стоит «Беларусь», и будем использовать для этого следующую формулу:

Рассмотрим формулу, более, подробнее. Во-первых, формула ПОИСКПОЗ(«Беларусь»;$D$2:$D$9;0) находит положение страны в списке. Во-вторых, функцией ИНДЕКС диапазона $I$2:$I$9 с которого будет производиться извлечение значения. В-третьих, соединим все две части формулы и получим нужный нам результат.

Внимание! При указании диапазонов в функции ПОИСКПОЗ, для улучшения и надёжности формулы желательно всегда использовать абсолютные ссылки.

Производим поиск по нескольким критериям

Итак, произведем поиск нужных нам значений по нескольким критериям без дополнительных телодвижений, в отличии от функции ВПР которой нужно создавать дополнительно вспомогательный столбик. Будем искать по двум столбикам: «Страна» и «Продукт», сложность заключается в том, что продукт будут поставляться в разные страны и данные в таблицах, расположены в произвольном порядке.

Читать еще:  Рамка в word

Следующая формула решит нашу проблему:

Если разобрать детально, эту более сложную формулу, то описать можно так: начнем с функции ПОИСКПОЗ, ищем мы значение 1, а массив нашего поиска, является результатом умножения, а именно, берется значение в первом столбике «Страна» в Таблица1 и сравниваем с именами всех стран в Таблице2. Если было найдено совпадение, формула возвращает 1 или ИСТИНА, а если нет, то или ЛОЖЬ. После делаем то же самое для столбика «Продукты». После всего этого перемножаем результаты и если совпадения найдены результат будет 1, если же нет, то получим – . Итак, функция ПОИСКПОЗ возвращает позицию в случае выполнения обоих критериев. Обязательно используем в формуле третий аргумент «3», так как была указана вся таблица и нужно уточнение, из какого же столбика нужно извлечь значения, в нашем случае столбик был третьим. Еще замечу, что это формула массива, поэтому мы заключаем ее в фигурные скобки и вводим «горячей» комбинацией Ctrl+Shift+Enter. Я думаю, что эти 3 примера, как используется функция ПОИСКПОЗ, поможет вам лучше понять эту функцию и научитесь ее использовать в своей работе.

Если у вас есть предложения, пишите комментарии, буду рад помочь!

Кто-то может сидеть в тени сегодня только потому, что кто-то в свое время посадил дерево.
Уоррен Баффетт

Поиск позиции элемента в списке с ПОИСКПОЗ (MATCH)

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

Синтаксис этой функции следующий:

=ПОИСКПОЗ( Что_ищем ; Где_ищем ; Режим_поиска )

  • Что_ищем — это значение, которое надо найти
  • Где_ищем — это одномерный диапазон или массив (строка или столбец), где производится поиск
  • Режим_поиска — как мы ищем: точно (0), с округлением в большую строну (-1) или в меньшую сторону (1)

Давайте рассмотрим несколько полезных вариантов ее применения на практике.

Точный поиск

Классический сценарий — поиск точного текстового совпадения для нахождения позиции нужного нам текста или числа в списке:

Поиск первой или последней текстовой ячейки

Если в качестве искомого значения задать звездочку, то функция будет искать первую ячейку с текстом и выдавать её позицию. Для поиска последней текстовой ячейки можно изменить третий аргумент Режим_поиска с нуля на минус 1:

Числа и пустые ячейки в этом случае игнорируются.

Поиск ближайшего числа или даты

Если последний аргумент задать равным 1 или -1, то можно реализовать поиск ближайшего наименьшего или наибольшего числа. Таблица при этом обязательно должна быть отсортирована по возрастанию или убыванию соответственно. В общем и целом, это чем-то похоже на интервальный просмотр у функции ВПР (VLOOKUP) , но там возможен только поиск ближайшего наименьшего, а здесь — есть выбор.

Например, нам нужно выбрать генератор из прайс-листа для расчетной мощности в 47 кВт. Если последний аргумент задать равным 1 и отсортировать таблицу по возрастанию, то мы найдем ближайшую наименьшую по мощности модель (Зверь):

Если же третий аргумент равен -1 и таблица отсортирована по убыванию, то мы найдем ближайшую более мощную модель (Бомба):

Связка функций ПОИСКПОЗ и ИНДЕКС

Очень часто функция ПОИСКПОЗ используется в связке с другой крайне полезной функцией — ИНДЕКС (INDEX) , которая умеет извлекать данные из диапазона по номеру строки-столбца, реализуя, фактически, «левый ВПР».

Так, в предыдущем примере получить не номер, а название модели генератора можно очень легко:

Ну, и поскольку Excel внутри хранит и обрабатывает даты как числа, то подобный подход на 100% работает и с датами. Например, мы можем легко определить на каком этапе сейчас находится наш проект:

Принципиальное ограничение функции ПОИСКПОЗ состоит в том, что она умеет искать только в одномерных массивах (т.е. строчке или столбце), но никто не запрещает использовать сразу два ПОИСКПОЗа вложенных в ИНДЕКС, чтобы реализовать двумерный поиск по строке и столбцу одновременно:

Exceltip

Блог о программе Microsoft Excel: приемы, хитрости, секреты, трюки

Формулы подстановки Excel: ВПР, ИНДЕКС и ПОИСКПОЗ

Если произвести поиск по функциям подстановки, Google покажет, что ВПР намного популярнее функции ИНДЕКС. Оно и понятно, ведь чтобы придать функции ИНДЕКС тот же функционал, что и ВПР, необходимо воспользоваться еще одной формулой – ПОИСКПОЗ. Что касается меня, было всегда непросто попробовать и освоить две новые функции одновременно. Но они дают больше возможностей и гибкости в создании электронных таблиц. Но обо всем по порядку.

Читать еще:  Word сноска внизу страницы

Функция ВПР()

Предположим, у вас есть таблица с данными о работниках. В первой колонке хранится табельный номер сотрудника, в остальных – другие данные (ФИО, отдел и т.д.). Если у вас есть табельный номер, то можно воспользоваться функцией ВПР, чтобы вернуть определенную информацию о сотруднике. Синтаксис формулы =ВПР(искомое_значение; таблица; номер_столбца; [интервальный_просмотр]). Она говорит Excel: «Найди в таблице строку, первая ячейка которой совпадает с искомым_значением, и верни значение ячейки с порядковым номером номер_столбца».

Но случаются ситуации, когда у вас есть имя сотрудника и необходимо вернуть табельный номер. На рисунке в ячейке A10 – имя работника и требуется определить табельный номер в ячейке B10.

Когда ключевое поле находится правее данных, которые вы хотите получить, ВПР не поможет. Если, конечно, была бы возможность задать номер_столбца -1, тогда проблем бы не было. Одним из распространенных решений является добавление нового столбца A, копирование имен сотрудников в этот столбец, заполнить табельные номера с помощью ВПР, сохранить их как значения и удалить временную колонку A.

Функция ИНДЕКС()

Чтобы решить нашу проблему в один шаг, необходимо воспользоваться формулами ИНДЕКС и ПОИСКПОЗ. Сложность данного подхода заключается в том, что требуется применить две функции, которые, возможно, вы никогда не применяли до этого. Для упрощения понимания решим эту задачу в два этапа.

Начнем с функции ИНДЕКС. Кошмарное название. Когда кто-нибудь говорит «индекс», у меня в голове не возникает ни единой ассоциации, чем же занимается эта функция. А требует она целых три аргумента: =ИНДЕКС(массив; номер_строки; [номер_столбца]).

Говоря по-простому, Excel идет в массив данных и возвращает значение, находящееся на пересечении указанной строки и столбца. Как будто бы просто. Таким образом, формула =ИНДЕКС($A$2:$C$6;4;2) вернет значение, находящееся в ячейке B5.

Применительно к нашей проблеме, чтобы вернуть табельный номер работника, формула должна выглядеть следующим образом =ИНДЕКС($A$2:$A$6;?;1). Выглядит как бессмыслица, но если мы заменим знак вопроса формулой ПОИСКПОЗ, у нас есть решение.

Функция ПОИСКПОЗ()

Синтаксис этой функции таков: =ПОИСКПОЗ(искомое_значение; просматриваемы_массив; [тип_сопоставления]).

Она говорит Excel: «Найди искомое_значение в массиве данных и верни номер строки массива, в которой это значение встречается». Таким образом, чтобы найти в какой строке находиться имя сотрудника в ячейке A10, необходимо прописать формулу =ПОИСКПОЗ(A10; $B$2:$B$6; 0). Если в ячейке A10 будет имя «Колин Фарел», тогда ПОИСКПОЗ вернет 5-ю строку массива B2:B6.

Ну, в принципе, все. Функция ПОИСКПОЗ указывает функции ИНДЕКС, в какой строке искать значение. Замените знак вопроса в формуле ИНДЕКС формулой ПОИСКОПОЗ и вы получите эквивалент ВПР с возможностью поиска данных, находящихся левее ключевого столбца. Получиться так:

В начале было непривычно, был огромный соблазн вставить еще одну колону и работать, как всегда работал. Но со временем использование функции ИНДЕКС вошло в привычку. Оказалось, что это быстрее и требует меньших манипуляций. Так что в следующий раз, когда у вас возникнет желание задать номеру столбца отрицательное число в ВПР, воспользуйтесь сочетанием двух странных функций ИНДЕКС и ПОИСКПОЗ, чтобы решить свою проблему.

Функции ИНДЕКС и ПОИСКПОЗ в Excel на простых примерах

Совместное использование функций ИНДЕКС и ПОИСКПОЗ в Excel – хорошая альтернатива ВПР, ГПР и ПРОСМОТР. Эта связка универсальна и обладает всеми возможностями этих функций. А в некоторых случаях, например, при двумерном поиске данных на листе, окажется просто незаменимой. В данном уроке мы последовательно разберем функции ПОИСКПОЗ и ИНДЕКС, а затем рассмотрим пример их совместного использования в Excel.

Более подробно о функциях ВПР и ПРОСМОТР.

Функция ПОИСКПОЗ в Excel

Функция ПОИСКПОЗ возвращает относительное расположение ячейки в заданном диапазоне Excel, содержимое которой соответствует искомому значению. Т.е. данная функция возвращает не само содержимое, а его местоположение в массиве данных.

Например, на рисунке ниже формула вернет число 5, поскольку имя “Дарья” находится в пятой строке диапазона A1:A9.

В следующем примере формула вернет 3, поскольку число 300 находится в третьем столбце диапазона B1:I1.

Из приведенных примеров видно, что первым аргументом функции ПОИСКПОЗ является искомое значение. Вторым аргументом выступает диапазон, который содержит искомое значение. Также функция имеет еще и третий аргумент, который задает тип сопоставления. Он может принимать один из трех вариантов:

  • – функция ПОИСКПОЗ ищет первое значение в точности равное заданному. Сортировка не требуется.
  • 1 или вовсе опущено – функция ПОИСКПОЗ ищет самое большое значение, которое меньше или равно заданному. Требуется сортировка в порядке возрастания.
  • -1 – функция ПОИСКПОЗ ищет самое маленькое значение, которое больше или равно заданному. Требуется сортировка в порядке убывания.

В одиночку функция ПОИСКПОЗ, как правило, не представляет особой ценности, поэтому в Excel ее очень часто используют вместе с функцией ИНДЕКС.

Читать еще:  Выравнивание абзацев в word

Функция ИНДЕКС в Excel

Функция ИНДЕКС возвращает содержимое ячейки, которая находится на пересечении заданных строки и столбца. Например, на рисунке ниже формула возвращает значение из диапазона A1:C4, которое находится на пересечении 3 строки и 2 столбца.

Стоит отметить, что номера строк и столбцов задаются относительно верхней левой ячейки диапазона. Например, если ту же таблицу расположить в другом диапазоне, то формула вернет тот же результат:

Если массив содержит только одну строку или один столбец, т.е. является вектором, то второй аргумент функции ИНДЕКС указывает номер значения в этом векторе. При этом третий аргумент указывать необязательно.

Например, следующая формула возвращает пятое значение из диапазона A1:A12 (вертикальный вектор):

Данная формула возвращает третье значение из диапазона A1:L1(горизонтальный вектор):

Совместное использование ПОИСКПОЗ и ИНДЕКС в Excel

Если Вы уже работали с функциями ВПР, ГПР и ПРОСМОТР в Excel, то должны знать, что они осуществляют поиск только в одномерном массиве. Но иногда приходится сталкиваться с двумерным поиском, когда соответствия требуется искать сразу по двум параметрам. Именно в таких случаях связка ПОИСКПОЗ и ИНДЕКС в Excel оказывается просто незаменимой.

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

Пускай ячейка C15 содержит указанный нами месяц, например, Май. А ячейка C16 – тип товара, например, Овощи. Введем в ячейку C17 следующую формулу и нажмем Enter:

=ИНДЕКС(B2:E13; ПОИСКПОЗ(C15;A2:A13;0); ПОИСКПОЗ(C16;B1:E1;0))

Как видите, мы получили верный результат. Если поменять месяц и тип товара, формула снова вернет правильный результат:

В данной формуле функция ИНДЕКС принимает все 3 аргумента:

  1. Первый аргумент – это диапазон B2:E13, в котором мы осуществляем поиск.
  2. Вторым аргументом функции ИНДЕКС является номер строки. Номер мы получаем с помощью функции ПОИСКПОЗ(C15;A2:A13;0). Для наглядности вычислим, что же возвращает нам данная формула:
  3. Третьим аргументом функции ИНДЕКС является номер столбца. Этот номер мы получаем с помощью функции ПОИСКПОЗ(C16;B1:E1;0). Для наглядности вычислим и это значение:

Если подставить в исходную громоздкую формулу вместо функций ПОИСКПОЗ уже вычисленные данные из ячеек D15 и D16, то формула преобразится в более компактный и понятный вид:

=ИНДЕКС(B2:E13;D15;D16)

Как видите, все достаточно просто!

На этой прекрасной ноте мы закончим. В этом уроке Вы познакомились еще с двумя полезными функциями Microsoft Excel – ПОИСКПОЗ и ИНДЕКС, разобрали возможности на простых примерах, а также посмотрели их совместное использование. Надеюсь, что данный урок Вам пригодился. Оставайтесь с нами и успехов в изучении Excel.

Функция ПОИСКПОЗ в Экселе

Здравствуйте. Функция ПОИСКПОЗ ищет элемент в массиве и возвращает его порядковый номер в этом диапазоне. То есть, можно найти индекс в нужного вам значения, содержащегося в списке. Записывается функция так:

=ПОИСКПОЗ( искомое значение ; массив ; тип сопоставления )

Функция принимает такие аргументы:

– поиск точного совпадения

1 – точное совпадение, или ближайшее меньшее (используется по умолчанию)

-1 – точное совпадение, или ближайшее большее

Точный поиск в Excel

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

В примере на картинке мы искали менеджера Соколова и получили результат «4». Под девятым номером тоже есть такая фамилия, но ПОИСКПОЗ возвращает первый с начала найденный элемент.

Приблизительный поиск

Когда поиск ведется в ряду чисел, точное совпадение случается редко. Поэтому, в функции есть два режима неточного поиска:

    Поиск совпадения, или ближайшего большего

Здесь последним аргументом нужно указать -1. Кроме того, массив должен быть отсортирован по убыванию. Это важно, без сортировки вы получите ошибку вместо результата!

Кстати, в этой статье я показал, как правильно сортировать таблицы!

В примере в столбце с продажами мы искали число 550, и получили индекс, соответствующий значению 568, ближайшему большему к 550

Поиск совпадения, или ближайшего меньшего

По аналогии с предыдущим пунктом, последний аргумент должен быть равен 1, а массив отсортирован по возрастанию. Тогда поиск числа, ближайшего меньшего к 550 будет таким:

Вот еще несколько уточнений, которые следует учитывать:

  • Функция не различает регистры текста. Для нее, например, «EXCEL», «Excel», «excel» — одинаковые строки;
  • Если нужного элемента нет в списке, функция вернет ошибку #Н/Д. Как обрабатывать ошибки, можете прочесть в этой статье;
  • ПОИСКПОЗ ищет строки, не превышающие 255 символов в длину
  • Повторюсь: если в таблице несколько совпадений – возвращается первое по порядку

Поскольку ПОИСКПОЗ возвращает индекс, а не значение, в большинстве случаев ее используют в комбинации с другими функциями. Например, ИНДЕКС.

Используя ИНДЕКС и ПОИСКПОЗ вместе, можно получить аналог функции ВПР, но немного более гибкую.

Ссылка на основную публикацию
Adblock
detector