Excel поискпоз второе вхождение

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

Совет: Попробуйте использовать новую функцию XMATCH , улучшенную версию функции MATCH, которая работает в любом направлении и по умолчанию возвращает точные совпадения, что упрощает и удобнее в использовании, чем предшественницу.

Функция ПОИСКПОЗ выполняет поиск указанного элемента в диапазоне ячеек и возвращает относительную позицию этого элемента в диапазоне. Например, если диапазон A1:A3 содержит значения 5, 25 и 38, то формула =ПОИСКПОЗ(25;A1:A3;0) возвращает значение 2, поскольку элемент 25 является вторым в диапазоне.

Браузер не поддерживает видео.

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

Синтаксис

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

Аргументы функции ПОИСКПОЗ описаны ниже.

  • Искомое_значение.    Обязательный аргумент. Значение, которое сопоставляется со значениями в аргументе просматриваемый_массив. Например, при поиске номера в телефонной книге имя абонента указывается в качестве искомого значения, а нужным значением будет номер телефона.

    Аргумент искомое_значение может быть значением (числом, текстом или логическим значением) или ссылкой на ячейку, содержащую такое значение.

  • Просматриваемый_массив    Обязательный аргумент. Диапазон ячеек, в которых производится поиск.

  • Тип_сопоставления.    Необязательный аргумент. Число -1, 0 или 1. Аргумент тип_сопоставления указывает, каким образом в Microsoft Excel искомое_значение сопоставляется со значениями в аргументе просматриваемый_массив. По умолчанию в качестве этого аргумента используется значение 1.

    В приведенной ниже таблице описано, как функция находит значения в зависимости от аргумента тип_сопоставления.

Тип_сопоставления

Поведение

1 или опущен

Функция ПОИСКПОЗ находит наибольшее значение, которое меньше или равно значению аргумента искомое_значение. Просматриваемый_массив должен быть упорядочен по возрастанию: …, -2, -1, 0, 1, 2, …, A-Z, ЛОЖЬ, ИСТИНА.

0

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

-1

Функция ПОИСКПОЗ находит наименьшее значение, которое больше или равно значению аргумента искомое_значение. Просматриваемый_массив должен быть упорядочен по убыванию: ИСТИНА, ЛОЖЬ, Z — A, …, 2, 1, 0, -1, -2, … и т. д.

  • Функция ПОИСКПОЗ возвращает не само значение, а его позицию в аргументе просматриваемый_массив. Например, функция ПОИСКПОЗ(«б»;{«а»;»б»;»в«};0) возвращает 2 — относительную позицию буквы «б» в массиве {«а»;»б»;»в»}.

  • Функция ПОИСКПОЗ не различает регистры при сопоставлении текста.

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

  • Если тип_сопоставления равен 0 и искомое_значение является текстом, то искомое_значение может содержать подстановочные знаки: звездочку (*) и вопросительный знак (?). Звездочка соответствует любой последовательности знаков, вопросительный знак — любому одиночному знаку. Если нужно найти сам вопросительный знак или звездочку, перед ними следует ввести знак тильды (~).

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Продукт

Количество

Бананы

25

Апельсины

38

Яблоки

40

Груши

41

Формула

Описание

Результат

=ПОИСКПОЗ(39;B2:B5,1;0)

Так как точного соответствия нет, возвращается позиция ближайшего меньшего элемента (38) в диапазоне B2:B5.

2

=ПОИСКПОЗ(41;B2:B5;0)

Позиция значения 41 в диапазоне B2:B5

4

=ПОИСКПОЗ(40;B2:B5;-1)

Возвращает сообщение об ошибке, так как диапазон B2:B5 упорядочен не по убыванию.

#Н/Д

Нужна дополнительная помощь?

Skip to content

Поиск в массиве при помощи ПОИСКПОЗ

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

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

  • Функция ПОИСКПОЗ — пошаговая инструкция
  • Поиск частичного совпадения с подстановочными знаками
  • ПОИСКПОЗ с учетом регистра
  • ПОИСКПОЗ и несколько условий
  • Как сравнить столбцы при помощи ПОИСКПОЗ
  • Совместное использование ВПР и ПОИСКПОЗ
  • Использование ГПР и ПОИСКПОЗ

Функция ПОИСКПОЗ Excel — пошаговая инструкция

Функция ПОИСКПОЗ в Excel ищет указанное значение в массиве и возвращает относительное положение этого значения.

Рассмотрим пошагово, как составить формулу ПОИСКПОЗ:

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

Шаг 1. Искомое_значение (обязательный аргумент) — значение, которое вы хотите найти. Это может быть число, текстовое или логическое значение, а также ссылка на ячейку.

Шаг 2. Массив_поиска (обязательно) — диапазон ячеек для поиска.

Шаг 3. Указываем Тип_совпадения (необязательно) — определяет тип соответствия. Это может быть одно из следующих значений: 1, 0, -1. Аргумент, установленный в 0, возвращает только точное совпадение, в то время как два других значения допускают приблизительное совпадение.

  • 1 или опущено (по умолчанию) — найти наибольшее значение в массиве поиска, которое меньше или равно значению поиска. Требуется сортировка массива поиска в порядке возрастания, от меньшего к большему или от А до Я.
  • 0 — найти первое значение в массиве, точно равное искомому значению. Никакой сортировки не требуется.
  • -1 — найти наименьшее значение в массиве, которое больше или равно искомому значению. Массив поиска должен быть отсортирован в порядке убывания, от наибольшего к наименьшему или от Я до A.

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

=ПОИСКПОЗ(“Елена”; A2:A8;0)

При желании вы можете поместить искомое значение в какую-либо ячейку (E1 в этом примере) и сослаться на эту ячейку в своей формуле:

=ПОИСКПОЗ(E1; A2:A8;0)

Как вы видите на скриншоте выше, имена расположены не по алфавиту, а потому мы устанавливаем аргументу тип_совпадения значение 0 (точное соответствие). Ведь только этот вариант не требует сортировки в массиве поиска. 

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

4 вещи, которые вы должны знать о функции ПОИСКПОЗ

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

  1. Функция ПОИСКПОЗ возвращает относительное положение искомого значения в массиве, а не само значение.
  2. ПОИСКПОЗ нечувствительна к регистру , то есть не различает строчные и прописные символы при работе с текстовыми значениями.
  3. Если искомый массив содержит несколько вхождений искомого значения, то возвращается позиция первого найденного значения.
  4. Если искомое значение не найдено в массиве поиска, возвращается ошибка #Н/Д.

Как использовать ПОИСКПОЗ в Excel — примеры формул

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

Частичное совпадение с подстановочными знаками

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

  • Вопросительный знак (?) — заменяет любой одиночный символ
  • Звездочка (*) — заменяет любую последовательность символов

Примечание. Подстановочные знаки можно использовать только тогда, если для параметра тип_совпадения установлено значение 0.

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

Предположим, у вас есть данные о продажах напитков за последний месяц. Вы хотите найти относительную позицию определенного наименования в списке (отсортированном по суммам продаж в порядке убывания), но не можете точно вспомнить полное наименование, хотя помните несколько первых символов.

Предположим, что наименования товаров находятся в диапазоне A2:A11, и вы ищете имя, начинающееся с «доб». Формула выглядит следующим образом:

=ПОИСКПОЗ(«доб*»; A2:A11;0)

Чтобы сделать нашу формулу более универсальной, вы можете ввести искомое значение в какую-либо ячейку (E1 в этом примере) и соединить эту ячейку с подстановочным знаком, например:

=ПОИСКПОЗ(E1&»*»; A2:A11;0)

Как показано на скриншоте ниже, формула возвращает 4, что является позицией «Добрый экзотик»:

Обратите внимание, что напитков «Добрый» в нашем массиве целых три. Но формула останавливает поиск, как только будет найдено первое подходящее соответствие.

Чтобы заменить только один символ в искомом значении, используйте подстановочный знак «?».

Формула ПОИСКПОЗ с учетом регистра

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

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

Вот общая формула с учетом регистра для сопоставления данных:

=ПОИСКПОЗ(ИСТИНА;СОВПАД(искомый массив ; искомое значение );0)

Формула работает по следующей логике:

  • Функция СОВПАД (EXACT в английской версии) сравнивает значение с каждым элементом массива поиска. Если сравниваемые ячейки точно равны, функция возвращает значение ИСТИНА, в противном случае — ЛОЖЬ.
  • Затем функция ПОИСКПОЗ сравнивает ИСТИНА (которое является ее искомым_значением ) с каждым значением в массиве, возвращаемом функцией СОВПАД, и возвращает позицию первого совпадения.

Пожалуйста, имейте в виду, что это формула массива , которая требует нажатия Ctrl + Shift + Enter при завершении ее ввода.

Предполагая, что искомое значение находится в ячейке E1, а массив поиска — A2:A9, формула выглядит следующим образом:

=ПОИСКПОЗ(ИСТИНА;СОВПАД(A2:A9;E1);0)

На скриншоте показана формула поиска соответствия с учетом регистра в Excel:

Как видите, формула различает регистр букв и по этой причине «А-201» было признано неподходящим.

ПОИСКПОЗ и несколько условий

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

Предположим, у нас есть список продаж отдельных товаров в нескольких регионах. Нужно найти первую подходящую позицию в списке для нужного товара и заданного региона.

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

=ПОИСКПОЗ(1;(B2:B12=G1)*(C2:C12=G2);0)

Давайте разбираться.

Наши два условия мы записываем в виде выражения (B2:B12=G1)*(C2:C12=G2). Первое условие (B2:B12=G1) означает, что мы сравниваем каждое из значений в столбце «Регион» с целью «Север», которая записана в G1. Получаем массив {ЛОЖЬ:ИСТИНА:ИСТИНА:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ}

Аналогично каждый из товаров сравниваем с «Яблоки» из G2. Аналогично получаем результат {ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ИСТИНА}.

После перемножения этих массивов получаем матрицу единиц и нулей: {0:0:0:1:0:0:0:0:1:0:0}

Здесь единицы означают те позиции, в которых оба условия выполняются.

И вот в этом массиве функция ПОИСКПОЗ ищет первую единицу. И находит ее в 4-й позиции.

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

Думаю, вы понимаете, что совершенно аналогичным образом можно вести поиск по трём и большему количеству условий.

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

Как сравнить столбцы при помощи ПОИСКПОЗ

Проверка двух списков на совпадения и различия — одна из наиболее распространенных задач в Excel, и ее можно выполнить различными способами. Формула ЕНД/ПОИСКПОЗ является одним из них:

ЕСЛИ(ЕНД(ПОИСКПОЗ( 1-е значение в Списке1 , Списке2 , 0)), «Нет в Списке 1», «»)

Для любого значения списка 2, которого нет в списке 1, формула возвращает « Нет в списке 1 ». 

Рассмотрим пошагово:

  • Функция ПОИСКПОЗ ищет значение из списка 1 в списке 2. Если значение найдено, оно возвращает его относительное положение, в противном случае получается ошибка #Н/Д.
  • Функция ЕНД в Excel выполняет только одну работу — проверяет наличие ошибок #Н/Д (что означает «недоступно»). Если обрабатываемое ею значение является ошибкой #Н/Д, функция возвращает значение ИСТИНА, в противном случае – ЛОЖЬ. В нашем случае ИСТИНА означает, что значение из списка 1 не найдено в списке 2 (т. е. функция ПОИСКПОЗ возвращает ошибку).
  • Поскольку вам может быть не слишком понятным видеть ИСТИНА для значений, которые не отображаются в списке 1, вы оборачиваете функцию ЕСЛИ вокруг ЕНД, чтобы вместо ИСТИНА отображалось « Нет в списке 1 » или любой другой текст, который вы хотите.

Например, чтобы сравнить значения в столбце B со значениями в столбце A, формула может быть записана так (где B2 — самая верхняя ячейка):

=ЕСЛИ(ЕНД(ПОИСКПОЗ(B2;A:A;0)); «Нет в списке 1»; «»)

Как вы помните, функция ПОИСКПОЗ в Excel сама по себе нечувствительна к регистру. Чтобы она различала регистр символов, вставьте функцию СОВПАД (EXACT по английски) в аргумент массив_поиска и не забудьте нажать Ctrl + Shift + Enter , чтобы ввести эту формулу массива :

{=ЕСЛИ(ЕНД(ПОИСКПОЗ(ИСТИНА; СОВПАД(A:A; B2);0)); «Нет в списке 1»; «»)}

На следующем рисунке показаны обе формулы в действии:

Быть может, вам также будет интересен этот материал: 5 способов сравнения ячеек в Excel.

Совместное использование ВПР и ПОИСКПОЗ

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

Один из самых досадных недостатков ВПР заключается в том, что она перестает корректно работать после вставки или удаления столбца в таблице поиска. Это происходит потому, что функция ВПР извлекает совпадающее значение на основе указанного вами номера возвращаемого столбца (номер индекса). Поскольку номер индекса «жестко запрограммирован» в формуле, Excel не может изменить его, когда в таблицу добавляются или удаляются новые столбцы.

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

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

Предполагая, что искомое значение находится в ячейке F1, значения таблицы расположены в $A$1:$C$8 (рекомендуется зафиксировать его с помощью абсолютных ссылок на ячейки, если вы планируете копировать формулу), выражение выглядит следующим образом:

=ВПР($G$1;$A$1:$С$8; 2; ЛОЖЬ)

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

Но только до тех пор, пока вы не вставите или не удалите какие-то столбцы:

Как видите, если мы вставляем дополнительный столбец, то формула теперь извлекает неверные данные. Она по-прежнему ссылается на второй столбец, в то время как данные Тест 1 сместились в третий.

Чтобы предотвратить подобные вещи, вы можете сделать свою формулу ВПР более гибкой, включив в нее функцию ПОИСКПОЗ:

ПОИСКПОЗ($F$2;$A$1:$С$1;0)

Где:

  • F2 — это искомое значение, которое в точности совпадает с именем возвращаемого столбца, т. е. столбца, из которого вы хотите извлечь значение ( Тест 1  в этом примере).
  • A1:C1 — массив поиска, содержащий заголовки таблицы.

А теперь запишите эту формулу в аргумент номер_столбца вашей формулы ВПР, например:

=ВПР($G$1;$A$1:$D$8; ПОИСКПОЗ($F$2;$A$1:$С$1;0); ЛОЖЬ)

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

Вставляем столбец с итоговым тестом:

Формула автоматически изменяется и продолжает работать, возвращая верный результат:

=ВПР($G$1;$A$1:$D$8; ПОИСКПОЗ($F$2;$A$1:$D$1;0); ЛОЖЬ)

Использование ГПР и ПОИСКПОЗ

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

Предположим, что искомое значение находится в ячейке B5, данные таблицы — B1:H3, имя возвращаемой строки (значение поиска для ПОИСКПОЗ) — в ячейке A6, а заголовки строк — A1:A3.

Тогда формула выглядит следующим образом:

=ГПР(B5;B1:H3;ПОИСКПОЗ(A6; A1:A3;0);ЛОЖЬ)

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

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

Подробное руководство и примеры формул можно найти в ИНДЕКС и ПОИСКПОЗ в Excel — лучшей альтернативе ВПР .

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

Здравствуйте.
2003
sub no

Столбец «А» имеет повторяющиеся записи
14
9
64
9
14

Необходимо найти все «9»
=ПОИСКПОЗ(9;$A$1:$A$20;0) =2
Находит первую девятку.
Как найти вторую (4) и n-ую


Отдельное спасибо можно на QiWi-кошелек 909-771-53-87 или ЯД 41001136675053


Еще 5 вариантов
формулы массива

=ЕСЛИ(СЧЁТЕСЛИ(A$1:A$20;D$1)<СТРОКА()-4;"";НАИМЕНЬШИЙ(ЕСЛИ(A$1:A$20=D$1;СТРОКА(A$1:A$20));СТРОКА()-4))

=НАИМЕНЬШИЙ(ЕСЛИ(A$1:A$20=D$1;СТРОКА(A$1:A$20));СТРОКА()-4)

=НАИМЕНЬШИЙ(ЕСЛИ(A$1:A$20=D$1;СТРОКА(A$1:A$20);999999);СТРОКА()-4)
обычные формулы

=ПОИСКПОЗ(D$1;ДВССЫЛ("A"&СУММ(E4;1)&":A20");)+E4

=ПОИСКПОЗ(D$1;СМЕЩ(A$1;СУММ(E4;1)-1;;СЧЁТ(A:A));)+E4
2, 4 и 5 лишнее убрано условным форматированием, 3 — форматом ячейки

Скажи мне, кудесник, любимец ба’гов…

Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995


Михаил, Александр,
Благодарю.
Даже представить не мог что здесь столько (!) решений.
Само-собой  _Boroda_ получил по репе
(похоже что на этом сайте с этим жаргоном не знакомы, но он знает о чем разговор)

P.S.
Своей фантазии хватило на 4-ую формулу. Но, по незнанию, использовал 2 амперсанда
=ПОИСКПОЗ(D$1;ДВССЫЛ(«A»&СУММ(E4;1)&»:»&A20); )+E4
Естественно, машина высказалась недружелюбно


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

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

Итак, начнём!

В этой статье я продемонстрирую вам, как можно сделать это.

Содержание

  1. Поиск фрагмента по всей таблице, второе, третье и N-ое совпадение
  2. С помощью добавления нового столбца
  3. С помощью массива

Поиск фрагмента по всей таблице, второе, третье и N-ое совпадение

С помощью добавления нового столбца

Допустим, у вас есть следующая табличка:

Например, вам необходимо перечислить все «Training» которые прошел человек, в ячейках после его имени.

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

К примеру, Джон прошел все тренинги, но если мы будем использовать вышеуказанные функции, результатом будет только «Excel». Функция нашла первое совпадение имени Джон, остановилась и передала нам результат. Но как же сделать так, чтобы она не останавливалась на первом совпадении?

Можно добавить столбец и провести нехитрые манипуляции с ним.

Пошаговая инструкция:

  • Вставим столбец «Помощник» сразу после имени;

  • В первую свободную ячейку пропишем:
=A2&СЧЁТЕСЛИ($A$2:$A2;A2)

  • А теперь, в другой столбик пропишем следующую функцию:
=ЕСНД(ВПР($E2&ЧИСЛСТОЛБ($F$1:F1);$B$2:$C$14;2;0);"")

Эта функция, в следующих столбиках, укажет какие тренинги прошел человек, если какой-то тренинг он не прошел — будет просто пустое место.

Что делает эта функция?

Мы используем небольшую хитрость. Функция СЧЁТЕСЛИ делает каждое новое имя человека уникальным. Как она это делает? — очень просто, она добавляет цифру к имени, например, Джон1, Джон2 и так далее.

Получается, что теперь функция ВПР не остановится при первом совпадении, потому что их не будет. Теперь все имена и даже одинаковые — уникальны (из-за цифр в конце имени).

$E2&ЧИСЛСТОЛБ ($F$1:F1) это сам фрагмент, по которому происходит поиск. Функция ЧИСЛСТОЛБ добавляет цифру, ориентируясь на номер строки, к концу имени, а дальше уже происходит поиск по этому фрагменту.

С помощью массива

Если вам, по каким-то причинам, не нравится, или вы не можете использовать способ с добавлением столбика, есть еще один вариант.

Допустим, у нас та же табличка:

Такая функция тоже вернет правильный результат:

=ЕСЛИОШИБКА(ИНДЕКС($B$2:$B$14;НАИМЕНЬШИЙ(ЕСЛИ($A$2:$A$14=$D2;СТРОКА($A$2:$A$14)-1;"");ЧИСЛСТОЛБ($E$1:E1)));"")

Чтобы вставить её, вам нужно выделить ячейки, в которые нужно вставить данные (в нашем случае, от E2 до G9).

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

Что делает эта функция?

Итак, давайте разберемся:

$A$2:$A$14=$D2

Этот фрагмент нашей функции сравнивает значения с ячейкой D2.

Результат либо ИСТИНА либо ЛОЖЬ.

Пример результата выполнения:

{ИСТИНА;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ИСТИНА;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ;ИСТИНА;ЛОЖЬ;ЛОЖЬ}

Продолжим и рассмотрим следующий фрагмент:

ЕСЛИ($A$2:$A$14=$D2;СТРОКА($A$2:$A$14)-1;””)

Этот фрагмент нашей функции получает на входе массив данных (ИСТИНА или ЛОЖЬ) и заменяет истину на номер строки из таблички, а ЛОЖЬ на пустое место.

Вот пример выполнения этого фрагмента:

{1;””;””;””;””;””;7;””;””;””;11;””;””}

Далее:

НАИМЕНЬШИЙ(ЕСЛИ($A$2:$A$14=$D2;СТРОКА($A$2:$A$14)-1;””);ЧИСЛСТОЛБ($E$1:E1))

А теперь функция НАИМЕНЬШИЙ запишет все наименьшие порядковые числа, первое, второе, третье и так далее. А функция ЧИСЛСТОЛБ присваивает им номера, в соответствии с номером строки.

ИНДЕКС($B$2:$B$14;НАИМЕНЬШИЙ(ЕСЛИ($A$2:$A$14=$D2;СТРОКА($A$2:$A$14)-1;””);ЧИСЛСТОЛБ($E$1:E1)))

В итоге функция ИНДЕКС, по порядковым номерам, полученным от функции ЧИСЛСТОЛБ, вернет их значения. То есть в первом совпадении возвращается «Excel» и так далее.

Но если возникнет ошибка, а она обязательно возникнет, потому что, в нашем случае, не все люди прошли по 3 тренинга, функция ЕСЛИОШИБКА заменит все ошибки на пустые места.

Итак, в этом разделе статьи мы использовали функцию массива. Это удобно, потому что её можно копировать без каких-либо проблем. Мое мнение — это лучший способ, может быть он и сложнее, но его можно без проблем масштабировать.

нные варианты найти все совпадения, просто я считаю что это самые практичные. Если у вас есть свои «удобные» способы, пожалуйста, поделитесь ими в комментариях.

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

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

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

где

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

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

Точный поиск

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

ПОИСКПОЗ в Excel

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

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

Поиск первого или последнего текста

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

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

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

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

ПОИСКПОЗ поиск ближайшего наименьшего числа

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

ПОИСКПОЗ поиск ближайшего наибольшего

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

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

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

ПОИСКПОЗ и ИНДЕКС

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

ПОИСКПОЗ и даты

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

Двумерный поиск с ПОИСКПОЗ и ИНДЕКС

Ссылки по теме

  • 5 вариантов применения функции ИНДЕКС (INDEX)
  • Интервальный просмотр с помощью функции ВПР (VLOOKUP)
  • Поиск последнего значения в строке или столбце
  • Как создать авторастягивающийся диапазон с автоподстройкой размеров

Понравилась статья? Поделить с друзьями:
  • Excel поискпоз все совпадения
  • Excel поиск числа в формуле
  • Excel показать адрес гиперссылки
  • Excel поискпоз в таблице
  • Excel поиск числа в одном столбце