Поиск по двумерному массиву excel

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

Пример 1. Найти значение по товару и городу

Предположим, что у нас имеется вот такой двумерный массив данных по городам и товарам:

vlookup2d1.png

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

  • Во-первых, нам нужно определить номер строки, соответствующей выбранному пользователем в желтой ячейке товару. Это поможет сделать функция ПОИСКПОЗ (MATCH) из категории Ссылки и массивы (Lookup and Reference). В частности, формула ПОИСКПОЗ(J2; A2:A10; 0) даст нам нужный результат (для Яблока это будет число 6). Первый аргумент этой функции — искомое значение (Яблоко из желтой ячейки J2), второй — диапазон ячеек, где мы ищем товар (столбец с товарами в таблице — A2:A10), третий аргумент задает тип поиска (0 — точное совпадение наименования, приблизительный поиск запрещен).
  • Во-вторых, совершенно аналогичным способом мы должны определить порядковый номер столбца в таблице с нужным нам городом. Функция ПОИСКПОЗ(J3; B1:F1; 0) сделает это и выдаст, например, для Киева, выбранного пользователем в желтой ячейке J3 значение 4.
  • И, наконец, в-третьих, нам нужна функция, которая умеет выдавать содержимое ячейки из таблицы по номеру строки и столбца — функция ИНДЕКС (INDEX) из той же категории Ссылки и массивы (Lookup and Reference). Первый аргумент этой функции — диапазон ячеек (в нашем случае это вся таблица, т.е. B2:F10), второй — номер строки, третий — номер столбца (а их мы определим с помощью функций ПОИСКПОЗ).

Итого, соединяя все вышеперечисленное в одну формулу, получаем для зеленой ячейки решение:

=ИНДЕКС(B2:F10; ПОИСКПОЗ(J2;A2:A10;0); ПОИСКПОЗ(J3;B1:F1;0))

или в английском варианте

=INDEX(B2:F10;MATCH(J2;A2:A10;0);MATCH(J3;B1:F1;0))

Пример 2. Приблизительный двумерный поиск

Слегка модифицируем предыдущий пример. Предположим, что у нас имеется вот такая ситуация:

vlookup2d2.png

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

Решение для серой ячейки будет практически полностью аналогично предыдущему примеру:

=ИНДЕКС(C7:K16; ПОИСКПОЗ(D3;B7:B16;1); ПОИСКПОЗ(G3;C6:K6;1))

=INDEX(C7:K16; MATCH(D3;B7:B16;1); MATCH(G3;C6:K6;1))

Разница только в последнем аргументе обеих функций ПОИСКПОЗ (MATCH)Типу сопоставления (здесь он равен минус 1). Это некий аналог четвертого аргумента функции ВПР (VLOOKUP) — Интервального просмотра (Range Lookup). Вообще говоря, возможных значений для него три:

  • 1 — поиск ближайшего наименьшего числа, т.е. введенные пользователем размеры двери округлялись бы до ближайших наименьших подходящих размеров из таблицы. В нашем случае высота 500 округлилась бы до 450, а ширина 480 до 300, и стоимость двери была бы 135.
  • -1 — поиск ближайшего наибольшего числа, т.е. нестандартная высота 500 округлялась бы до 700, а ширина 480 — до 600 и стоимость составила бы уже 462. Для бизнеса так гораздо интереснее! :)
  • 0 — поиск точного соответствия без каких либо округлений. Используется для 100%-го совпадения искомого значения с одним из значений в таблице. Естественно, применяется при поиске текстовых параметров (как в прошлом примере), т.к. для них округление невозможно.

Важно отметить, что при использовании приблизительного поиска с округлением диапазон поиска — а значит и вся таблица — должна быть отсортирована по возрастанию (для Типа сопоставления = 1) или по убыванию (для Типа сопоставления = -1) по строчкам и по столбцам. Иначе приблизительный поиск корректно работать не будет!

Для точного поиска (Тип сопоставления = 0) сортировка не нужна и никакой роли не играет.

P.S. Обратная задача

В комментах неоднократно интересуются — а как сделать обратную операцию, т.е. определить в первом примере город и товар если мы знаем значение из таблицы? Тут потребуются две небольшие формулы массива (не забудьте ввести их с помощью сочетания клавиш Ctrl+Shift+Enter, а не обычного Enter):

vlookup2d3.png

Принцип их работы следующий:

  1. перебираем все ячейки в диапазоне B2:F10 и ищем совпадение с искомым значением (13) из ячейки J4 с помощью функции ЕСЛИ (IF)
  2. когда нашли совпадение, то определяем номер строки (столбца) первого элемента в таблице в этой строке (столбце) с помощью функций СТОЛБЕЦ (COLUMN) и СТРОКА (ROW)
  3. выдергиваем значение города или товара из таблицы с помощью функции ИНДЕКС (INDEX)

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

  • Использование функции ВПР (VLOOKUP) для подстановки значений
  • Динамическая выборка из списка функциями ИНДЕКС и ПОИСКПОЗ
  • Улучшаем функцию ВПР (VLOOKUP2)
  • ВПР (VLOOKUP) с учетом регистра
  • Многоразовый ВПР для вывода сразу всех значений

Skip to content

5 способов – поиск значения в массиве Excel

В статье предлагается несколько различных формул для выполнения поиска в двумерном массиве значений Excel.  Просмотрите эти варианты и выберите наиболее для вас подходящий.

При поиске данных в электронных таблицах Excel чаще всего вы будете искать вертикально в столбцах или горизонтально в строках. Но иногда вам нужно просматривать сразу два условия – как строки, так и столбцы. Другими словами, вы стремитесь найти значение на пересечении определенной строки и столбца. Это называется матричным поиском (также известным как двумерный или поиск в диапазоне). Далее показано, как это можно сделать различными способами.

  • Поиск в массиве при помощи ИНДЕКС ПОИСКПОЗ
  • Формула ВПР и ПОИСКПОЗ для поиска в диапазоне
  • Функция ПРОСМОТРX для поиска в строках и столбцах
  • Формула СУММПРОИЗВ для поиска по строке и столбцу
  • Поиск в матрице с именованными диапазонами

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

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

ИНДЕКС( массив_данных ; ПОИСКПОЗ( значение_вертикальное ;  диапазон_поиска_столбец ; 0), ПОИСКПОЗ( значение_горизонтальное ;  диапазон_поиска_строка ; 0))

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

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

  • Массив_данных — B2:E11 (ячейки данных, не включая заголовки строк и столбцов)
  • Значение_вертикальное — H1 (целевой товар)
  • Диапазон_поиска_столбец – A2:A11 (заголовки строк: названия напитков)
  • Значение_горизонтальное — H2 (целевой период)
  • Диапазон_поиска_строка — B1:E1 (заголовки столбцов: временные периоды)

Соедините все аргументы вместе, и вы получите следующую формулу для поиска числа в диапазоне:

=ИНДЕКС(B2:E11; ПОИСКПОЗ(H1;A2:A11;0); ПОИСКПОЗ(H2;B1:E1;0))

Как работает эта формула?

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

ИНДЕКС( B2:E11; номер_строки ; номер_столбца )

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

Итак, чтобы получить номер строки, мы ищем нужный нам товар (H1) в заголовках строк (A2:A11):

ПОИСКПОЗ(H1;A2:A11;0)

Чтобы получить номер столбца, мы ищем нужную нам неделю (H2) в заголовках столбцов (B1:E1):

ПОИСКПОЗ(H2;B1:E1;0)

В обоих случаях мы ищем точное совпадение, присваивая третьему аргументу значение 0.

В этом примере первое ПОИСКПОЗ возвращает 2, потому что нужный товар (Sprite) находится в ячейке A3, которая является второй по счёту в диапазоне ​​A2:A11. Второй ПОИСКПОЗ возвращает 3, так как «Неделя 3» находится в ячейке D1, которая является третьей ячейкой в ​​B1:E1.

С учетом вышеизложенного формула сводится к:

ИНДЕКС(B2:E11; 2 ; 3 )

Она возвращает число на пересечении второй строки и третьего столбца в матрице B2:E4, то есть в ячейке D3.

Думаю, вы понимаете, что аналогичным образом можно производить поиск в двумерном массиве Excel не только числа, но и текста. Тип данных здесь не имеет значения.

Формула ВПР и ПОИСКПОЗ для поиска в диапазоне

Другой способ выполнить матричный поиск в Excel — использовать комбинацию функций ВПР и ПОИСКПОЗ:

ВПР( значение_вертикальное ; массив_данных ; ПОИСКПОЗ( значение_горизонтальное , диапазон_поиска_строка , 0), ЛОЖЬ)

Для нашего образца таблицы формула принимает следующий вид:

=ВПР(H1; A2:E11; ПОИСКПОЗ(H2;A1:E1;0); ЛОЖЬ)

Где:

  • Массив_данных — B2:E11 (ячейки данных, не включая заголовки строк и столбцов)
  • Значение_вертикальное — H1 (целевой товар)
  • Значение_горизонтальное — H2 (целевой период)
  • Диапазон_поиска_строка — А1:E1 (заголовки столбцов: временные периоды)

Основой формулы является функция ВПР, настроенная на точное совпадение (последний аргумент имеет значение ЛОЖЬ). Она ищет заданное значение (H1) в первом столбце массива (A2:E11) и возвращает данные из другого столбца в той же строке. Чтобы определить, из какого столбца вернуть значение, вы используете функцию ПОИСКПОЗ, которая также настроена на точное совпадение (последний аргумент равен 0):

ПОИСКПОЗ(H2;A1:E1;0)

ПОИСКПОЗ ищет текст из H2 в заголовках столбцов (A1:E1) и указывает относительное положение найденной ячейки. В нашем случае нужная неделя (3-я) находится в D1, которая является четвертой по счету в  массиве поиска. Итак, число 4 идет в аргумент номер_столбца функции ВПР:

=ВПР(H1; A2:E11; 4; ЛОЖЬ)

Далее ВПР находит точное совпадение H1 со значением в A3 и возвращает значение из 4-го столбца в той же строке, то есть из ячейки D3.

Важное замечаниеЧтобы формула работала корректно, диапазон_поиска (A2:E11) функции ВПР и диапазон_поиска (A1:E1) функции ПОИСКПОЗ должны иметь одинаковое количество столбцов. Иначе число, переданное в номер_столбца, будет неправильным (не будет соответствовать положению столбца в массиве данных).

Функция ПРОСМОТРX для поиска в строках и столбцах

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

ПРОСМОТРX( значение_вертикальное ; диапазон_поиска_столбец ; ПРОСМОТРX( значение_горизонтальное ; диапазон_поиска_строка ; массив_данных ))

Для нашего примера набора данных формула выглядит следующим образом:

=ПРОСМОТРX(H1; A2:A11; ПРОСМОТРX(H2; B1:E1; B2:E11))

Примечание. В настоящее время ПРОСМОТРX — это функция, доступная только подписчикам Office 365 и более поздних версий.

В формуле используется функция ПРОСМОТРX для возврата всей строки или столбца. Внутренняя функция ищет целевой период времени в строке заголовка и возвращает все значения для этой недели (в данном примере для 3-й). Эти значения переходят в аргумент возвращаемый_массив внешнего ПРОСМОТРX:

=ПРОСМОТРX(H1; A2:A11; {544:87:488:102:87:433:126:132:111:565})

Внешняя функция ПРОСМОТРX ищет нужный товар в заголовках столбцов и извлекает значение из той же позиции из возвращаемого_массива.

Формула СУММПРОИЗВ для поиска по строке и столбцу

Функция СУММПРОИЗВ чрезвычайно универсальна — она может делать множество вещей, выходящих за рамки ее предназначения, особенно когда речь идет об оценке нескольких условий.

Чтобы найти значение на пересечении определенных строки и столбца, используйте эту общую формулу:

СУММПРОИЗВ ( диапазон_поиска_столбец = значение_вертикальное ) * ( диапазон_поиска_строка = значение_горизонтальное), массив_данных )

Чтобы выполнить поиск данных в массиве по строке и столбцу в нашем наборе данных, формула выглядит следующим образом:

=СУММПРОИЗВ((A2:A11=H1)*(B1:E1=H2); B2:E11)

Приведенный ниже вариант также будет работать:

=СУММПРОИЗВ((A2:A11=H1)*(B1:E1=H2)*B2:E11)

Теперь поясним подробнее. В начале мы сравниваем два значения поиска с заголовками строк и столбцов (целевой товар в H1 со всеми наименованиями в A2: A11 и целевой период времени в H2 со всеми неделями в B1: E1):

(A2:A11=H1)*(B1:E1=H2)

Это дает нам два массива значений ИСТИНА и ЛОЖЬ, где ИСТИНА означает совпадения:

{ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ}) * ({ЛОЖЬ;ЛОЖЬ;ИСТИНА;ЛОЖЬ}

Операция умножения преобразует значения ИСТИНА и ЛОЖЬ в 1 и 0 и создает матрицу из 4 столбцов и 10 строк (строки разделяются двоеточием, а каждый столбец данных — точкой с запятой):

{0;0;0;0:0;0;1;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0}

Функция СУММПРОИЗВ умножает элементы приведенного выше массива на элементы B2:E4, находящихся в тех же позициях:

{0;0;0;0:0;0;1;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0; 0;0:0;0;0;0:0;0;0;0:0;0;0;0} * {455;345;544;366:65;77;87;56:766; 655;488;865:129;66;102;56:89;141;87;89:566;511;433;522:154; 144;126; 162:158;165;132;155:112;143;111; 125:677;466;565;766})

И поскольку умножение на ноль дает в результате ноль, остается только элемент, соответствующий 1 в первом массиве:

=СУММПРОИЗВ({0;0;0;0:0;0;87;0:0;0;0;0:0;0;0;0:0;0;0;0:0; 0;0;0:0;0;0;0:0;0;0;0:0;0;0;0:0;0;0;0})

Наконец, СУММПРОИЗВ складывает все элементы результирующего массива и возвращает значение 87.

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

Поиск в матрице с именованными диапазонами

Еще один достаточно простой способ поиска в массиве в Excel — использование именованных диапазонов. Рассмотрим пошагово:

Шаг 1. Назовите столбцы и строки

Самый быстрый способ назвать каждую строку и каждый столбец в вашей таблице:

  1. Выделите всю таблицу (в нашем случае A1:E11).
  2. На вкладке « Формулы » в группе « Определенные имена » щелкните « Создать из выделенного » или нажмите комбинацию клавиш  Ctrl + Shift + F3.
  3. В диалоговом окне « Создание имени из выделенного » выберите « в строке выше » и « в столбце слева» и нажмите «ОК».

Это автоматически создает имена на основе заголовков строк и столбцов. Однако есть пара предостережений:

  • Если ваши заголовки столбцов и/или строк являются числами или содержат определенные символы, которые не разрешены в именах Excel, то имена для таких столбцов и строк не будут созданы. Чтобы просмотреть список созданных имен, откройте Диспетчер имен (Ctrl + F3). Если некоторые имена отсутствуют, определите их вручную.
  • Если некоторые из ваших заголовков строк или столбцов содержат пробелы, то они будут заменены символами подчеркивания, например, Неделя_1.

Шаг 2. Создание формулы поиска по матрице

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

=имя_строки имя_столбца

Или наоборот:

=имя_столбца имя_строки

Например, чтобы получить продажу Sprite в 3-й неделе, используйте выражение:

=Sprite неделя_3

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

Если кому-то нужны более подробные инструкции, опишем весь процесс пошагово:

  1. В ячейке, в которой вы хотите отобразить результат, введите знак равенства (=).
  2. Начните вводить имя целевой строки, Sprite. После того, как вы введете пару символов, Excel отобразит все существующие имена, соответствующие вашему вводу. Дважды щелкните нужное имя, чтобы ввести его в формулу.
  3. После имени строки введите пробел , который в данном случае работает как оператор пересечения.
  4. Введите имя целевого столбца ( в нашем случае неделя_3 ).
  5. Как только будут введены имена строки и столбца, Excel выделит соответствующую строку и столбец в вашей таблице, и вы нажмете Enter, чтобы завершить ввод:

Ваш поиск нужной ячейки в массиве выполнен, найден результат 87.

Вот какими способами можно выполнять поиск в массиве значений – в строках и столбцах таблицы Excel. Я благодарю вас за чтение и надеюсь еще увидеть вас в нашем блоге.

Еще несколько материалов по теме:

Поиск ВПР нескольких значений по нескольким условиям В статье показаны способы поиска (ВПР) нескольких значений в Excel на основе одного или нескольких условий и возврата нескольких результатов в столбце, строке или в отдельной ячейке. При использовании Microsoft…
Поиск ИНДЕКС ПОИСКПОЗ по нескольким условиям В статье показано, как выполнять быстрый поиск с несколькими условиями в Excel с помощью ИНДЕКС и ПОИСКПОЗ. Хотя Microsoft Excel предоставляет специальные функции для вертикального и горизонтального поиска, опытные пользователи…
ИНДЕКС ПОИСКПОЗ как лучшая альтернатива ВПР В этом руководстве показано, как использовать ИНДЕКС и ПОИСКПОЗ в Excel и чем они лучше ВПР. В нескольких недавних статьях мы приложили немало усилий, чтобы объяснить основы функции ВПР новичкам и предоставить…
Поиск в массиве при помощи ПОИСКПОЗ В этой статье объясняется с примерами формул, как использовать функцию ПОИСКПОЗ в Excel.  Также вы узнаете, как улучшить формулы поиска, создав динамическую формулу с функциями ВПР и ПОИСКПОЗ. В Microsoft…
Функция ИНДЕКС в Excel — 6 примеров использования В этом руководстве вы найдете ряд примеров формул, демонстрирующих наиболее эффективное использование ИНДЕКС в Excel. Из всех функций Excel, возможности которых часто недооцениваются и используются недостаточно, ИНДЕКС определенно занимает место…
Функция СУММПРОИЗВ с примерами формул В статье объясняются основные и расширенные способы использования функции СУММПРОИЗВ в Excel. Вы найдете ряд примеров формул для сравнения массивов, условного суммирования и подсчета ячеек по нескольким условиям, расчета средневзвешенного значения…
Средневзвешенное значение — формула в Excel В этом руководстве демонстрируются два простых способа вычисления средневзвешенного значения в Excel — с помощью функции СУММ (SUM) или СУММПРОИЗВ (SUMPRODUCT в английском варианте). В одной из предыдущих статей мы…

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

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

Пример

Чтобы было было понятнее, начнем с примера.

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

Поиск по матрице

Необходимо найти стоимость для третьего месяца по городу Краснодару или найти Sij, если по умному. Как будем делать?

Поиск в двумерном массиве Excel. Как записать формулу

Как мы обсудили, готовой формулы в Excel нет. Поэтому создадим комбинацию двух формул. В любой ячейки запишем:

=ВПР($G:$G;$B:$E;ПОИСКПОЗ($H:$H;$B$2:$E$2);)

Где столбец G — искомый город (Краснодар), а столбец H — месяц (третий). При записи можно использовать и просто одну ячейку, например, G4 и H4

=ВПР($G$4;$B:$E;ПОИСКПОЗ($H$4;$B$2:$E$2);)

Поиск в двумерном массиве Excel

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

Описание конструкции формулы:

  1. Функция ВПР осуществляет поиск нужного нам значения (Города, синий столбец G) в большой таблице $B:$E (отмечена зеленым). Для этого нам необходимо указать в каком же именно столбце этой таблицы ВПРу искать город — втором, третьем или четвертом (C, D, E)
  2. Номер этого столбца найдем при помощи функции ПОИСКПОЗ, которая находит номер элемента в массиве. А точнее найдем номер значения фиолетового столбца H (месяца) в массиве $B$2:$E$2. Тем самым мы определили, что ВПР надо использовать третий столбец.
  3. Четвертый аргумент оставляем пустым (после последней «;»), т.к. по умолчанию можно оставить ЛОЖЬ или пусто. Подробнее здесь.

Обратите внимание! Нужно обязательно выполнить два условия, чтобы формула считалась правильно!

— Ширина массива $B$2:$E$2 в ПОИСКПОЗ и ширина таблицы $B:$E должны совпадать.

— Данные в массиве для ПОИСКПОЗ ($B$2:$E$2) должны быть отсортированы от большего к меньшему или от А до Я!

Получилось:

Поиск в двумерном массиве Excel 2

Если есть вопросы — не стесняйтесь писать комментарии!

Содержание

  1. Excel works!
  2. Excel works!
  3. Поиск в двумерном массиве Excel (по матрице). ВПР и ПОИСКПОЗ
  4. Пример
  5. Поиск в двумерном массиве Excel. Как записать формулу
  6. Индекс поискпоз в excel поиск по двум столбцам
  7. Функции ИНДЕКС и ПОИСКПОЗ в Excel на простых примерах
  8. Функция ПОИСКПОЗ в Excel
  9. Функция ИНДЕКС в Excel
  10. Совместное использование ПОИСКПОЗ и ИНДЕКС в Excel
  11. Продвинутые примеры с функцией ВПР: поиск по нескольким критериям
  12. Поиск в Excel по нескольким критериям
  13. Пример 1: Поиск по 2-м разным критериям
  14. Пример 2: ВПР по двум критериям с просматриваемой таблицей на другом листе
  15. Извлекаем 2-е, 3-е и т.д. значения, используя ВПР
  16. Извлекаем все повторения искомого значения
  17. Часть 1:
  18. Часть 2:
  19. Часть 3:
  20. Часть 4:
  21. Часть 5:
  22. Двумерный поиск по известным строке и столбцу
  23. Функции ВПР и ПОИСКПОЗ
  24. Функция СУММПРОИЗВ
  25. Функции ИНДЕКС и ПОИСКПОЗ
  26. Именованные диапазоны и оператор пересечения
  27. Используем несколько ВПР в одной формуле
  28. Динамическая подстановка данных из разных таблиц при помощи ВПР и ДВССЫЛ
  29. Как работают ДВССЫЛ и ВПР
  30. Поиск значений в списке данных
  31. В этой статье
  32. Поиск значений в списке по вертикали по точному совпадению
  33. Примеры функции ВПР
  34. Примеры функций ИНДЕКС и ПОИСКПОЗ
  35. Поиск значений в списке по вертикали по приблизительному совпадению
  36. Поиск значений по вертикали в списке неизвестного размера по точному совпадению
  37. Поиск значений в списке по горизонтали по точному совпадению
  38. Поиск значений в списке по горизонтали по приблизительному совпадению
  39. Создание формулы подстановки с помощью мастера подстановок (только Excel 2007)
  40. Поиск и подстановка по нескольким условиям
  41. Постановка задачи
  42. Способ 1. Дополнительный столбец с ключом поиска
  43. Способ 2. Функция СУММЕСЛИМН
  44. Способ 3. Формула массива
  45. Пример функции ПОИСКПОЗ для поиска совпадения значений в Excel
  46. Примеры использования функции ПОИСКПОЗ в Excel
  47. Формула для поиска неточного совпадения текста в Excel
  48. Сравнение двух таблиц в Excel на наличие несовпадений значений
  49. Поиск ближайшего большего знания в диапазоне чисел Excel
  50. Особенности использования функции ПОИСКПОЗ в Excel
  51. индекс поискпоз по 2 столбцам (Формулы/Formulas)
  52. Трехмерный поиск по нескольким листам (ВПР 3D)
  53. Использование ИНДЕКС ПОИСКПОЗ: как искать значение в двух столбцах одновременно

Excel works!

Excel работает за вас

Excel works!

Thanks for Visiting

Поиск в двумерном массиве Excel (по матрице). ВПР и ПОИСКПОЗ

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

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

Пример

Чтобы было было понятнее, начнем с примера.

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

Необходимо найти стоимость для третьего месяца по городу Краснодару или найти Sij, если по умному. Как будем делать?

Поиск в двумерном массиве Excel. Как записать формулу

Как мы обсудили, готовой формулы в Excel нет. Поэтому создадим комбинацию двух формул. В любой ячейки запишем:

Где столбец G — искомый город (Краснодар), а столбец H — месяц (третий). При записи можно использовать и просто одну ячейку, например, G4 и H4

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

Описание конструкции формулы:

  1. Функция ВПР осуществляет поиск нужного нам значения (Города, синий столбец G) в большой таблице $B:$E (отмечена зеленым). Для этого нам необходимо указать в каком же именно столбце этой таблицы ВПРу искать город — втором, третьем или четвертом (C, D, E)
  2. Номер этого столбца найдем при помощи функции ПОИСКПОЗ, которая находит номер элемента в массиве. А точнее найдем номер значения фиолетового столбца H (месяца) в массиве $B$2:$E$2. Тем самым мы определили, что ВПР надо использовать третий столбец.
  3. Четвертый аргумент оставляем пустым (после последней «;»), т.к. по умолчанию можно оставить ЛОЖЬ или пусто. Подробнее здесь.

Обратите внимание! Нужно обязательно выполнить два условия, чтобы формула считалась правильно!

— Ширина массива $B$2:$E$2 в ПОИСКПОЗ и ширина таблицы $B:$E должны совпадать.

— Данные в массиве для ПОИСКПОЗ ($B$2:$E$2) должны быть отсортированы от большего к меньшему или от А до Я!

Если есть вопросы — не стесняйтесь писать комментарии!

Источник

Индекс поискпоз в excel поиск по двум столбцам

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

​Смотрите также​​ ячейки G (номер​​ из фрагментов с​​Пример во вложении.​​ «нет».​ сразу целые столбцы​​ по одному столбцу,​​и возвращает значение​​Автор: Антон Андронов​​ функцией​​, используя​​в третьем аргументе,​наименьшее значение в​ имя покупателя (она​ и C содержатся​ значения​ВПР​Совместное использование функций​ которой соответствует найденной​ помощью оператора сцепки​Спасибо.​​Чтобы вычислить остальные значения​​ (т.е. вместо A2:A161​​ а не по​​ из строки 5 в​Предположим, что требуется найти​ЕСЛИ​

​SKU​ Вы говорите функции​

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

​ массиве данных. В​​ неизменна, обратите внимание​​ имена клиентов и​Двумерный поиск по известным​,​ИНДЕКС​ позиции) меньше нуля,​ &. Например, формула:​Pelena​ «протянем» формулу из​ вводить A:A и​

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

​ нашем случае, какую​ – ссылка абсолютная);​​ названия продуктов соответственно,​​ строке и столбцу​ГПР​и​

​ то в пустую​=ДВССЫЛ(A1&»!B3″)​: Здравствуйте.​​ ячейки C2 вниз​​ т.д.) Многим непривычны​ нужно из нескольких​Дополнительные сведения см. в​ сотрудника по его​ функцией​=VLOOKUP(A2,New_SKU,2,FALSE)​искать первое значение,​ по счёту позицию​$B$​ а ссылка​

​ автозаполнения. В результате​​ принципе (тогда вам​​Добавим рядом с нашей​ ГПР.​ узнать ставку комиссионного​. Вот такая комбинация​Здесь​ с искомым значением.​​ – определено функцией​​Customer Name​

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

​определяет таблицу для​​Динамическая подстановка данных из​​в Excel, то​ хорошая альтернатива​ столбца Н;​ A1, приклеивает к​miha_​ получим:​ сюда).​ таблицей еще один​К началу страницы​ вознаграждения, предусмотренную за​

​ВПР​New_SKU​ Это равносильно значению​ROW​;​ поиска на другом​ разных таблиц​ должны знать, что​ВПР​

​если совпадение обнаружено​ нему восклицательный знак-разделитель​:​Как видно, третьи элементы​Функция ПОИСКПОЗ в Excel​​ столбец, где склеим​​Для выполнения этой задачи​ определенный объем продаж.​и​– именованный диапазон​

​FALSE​(СТРОКА) (смотри Часть​Table4​ листе.​

​Функция​ они осуществляют поиск​,​

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

​ среди ячеек столбца​ и адрес ячейки​​Pelena​​ списков не совпадают.​​ используется для поиска​​ название товара и​​ используется функция ГПР.​​ Необходимые данные можно​ДВССЫЛ​$A:$B​(ЛОЖЬ) для четвёртого​ 2). Так, для​– Ваша таблица​Чтобы сделать формулу более​ВПР​ только в одномерном​ГПР​ F и содержимое​​ B3. Если в​​, Спасибо.​​Пример 3. Найти ближайшее​​ точного совпадения или​ месяц в единое​

​Важно:​ быстро и эффективно​отлично работает в​в таблице​ аргумента​ ячейки​ (на этом месте​ читаемой, Вы можете​в Excel –​

​ массиве. Но иногда​и​ ячейки G (номер​​ ячейке A1 будет​​То,что нужно.​ меньшее числу 22​ ближайшего (меньшего или​​ целое с помощью​​ Значения в первой​ находить в списке​ паре:​​Lookup table 1​​ВПР​

​F4​

​ также может быть​ задать имя для​ это действительно мощный​ приходится сталкиваться с​ПРОСМОТР​ которой соответствует найденной​

​ лежать слово Москва,​​_Boroda_​​ в диапазоне чисел,​ большего заданному в​

  1. ​ оператора сцепки (&),​ строке должны быть​ и автоматически проверять​=VLOOKUP($D$2,INDIRECT($D3&»_Sales»),2,FALSE)​
  2. ​, а​​.​​функция​ обычный диапазон);​ просматриваемого диапазона, и​​ инструмент для выполнения​​ двумерным поиском, когда​. Эта связка универсальна​ позиции) больше нуля,​
  3. ​ то на выходе​​: Еще похожее​​ хранящихся в столбце​ зависимости от типа​ чтобы получить уникальный​ отсортированы по возрастанию.​​ их правильность. Значения,​​=ВПР($D$2;ДВССЫЛ($D3&»_Sales»);2;ЛОЖЬ)​2​

​Вот так Вы можете​НАИМЕНЬШИЙ(<массив>;1)​$C16​​ тогда формула станет​​ поиска определённого значения​ соответствия требуется искать​ и обладает всеми​ то в пустую​ мы получим ссылку​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(D3:D7;ЕСЛИОШИБКА(ПОИСКПОЗ($H3;$A3:$A7;);ПОИСКПОЗ($H3;$B3:$B7;)))​

​ таблицы Excel.​

​ сопоставления, указанного в​ столбец-ключ для поиска:​

​В приведенном выше примере​ возвращенные поиском, можно​Где:​– это столбец​ создать формулу для​возвращает​​– конечная ячейка​​ выглядеть гораздо проще:​​ в базе данных.​​ сразу по двум​ возможностями этих функций.​ ячейку записываются значения​ Москва!B3, т.е. содержимое​И немного другоеКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ПРОСМОТР(;-1/(($A3:$A7=$H3)+($B3:$B7=$H3));D3:D7)​Вид исходной таблицы данных:​ качестве аргумента) значения​Теперь можно использовать знакомую​ функция ГПР ищет​

​ затем использовать в​

Продвинутые примеры с функцией ВПР: поиск по нескольким критериям

  • ​ случаях, например, при​ столбцов Н и​
  • ​ листа Москва.​ (вводится одновременным нажатием​ значения заданному во​
  • ​ или диапазоне ячеек​ВПР (VLOOKUP)​
  • ​ в указанном диапазоне.​ как результаты. Существует​
  • ​ с названием товара,​ на рисунке выше)​
  • ​ что также известно,​ то есть​

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

​Эта формула находит только​​Чтобы формула работала, значения​​ синтаксис позволяет искать​ПОИСКПОЗ​ двумерном поиске данных​ G.​Теперь сводим все в​ Контрл Шифт Ентер)Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(D3:D7;ПОИСКПОЗ(«*»&$H3&»*»;$A3:$A7&$B3:$B7;))​ всем столбце A:A​ и возвращает номер​для поиска склеенной​ Значение 11 000 отсутствует, поэтому​ несколько способов поиска​ она неизменна благодаря​Запишите формулу для вставки​ как двумерный поиск​

Пример 1: Поиск по 2-м разным критериям

​1​ второе совпадающее значение.​ в крайнем левом​​ только одно значение.​​и​ на листе, окажется​​я могу решить​​ единое целое для​​miha_​​ (числовой ряд может​ позиции найденного элемента.​ пары​ она ищет следующее​ значений в списке​ абсолютной ссылке.​

​ цен из таблицы​​ или поиск в​​. Для ячейки​ Если же Вам​ столбце просматриваемой таблицы​ Как же быть,​ИНДЕКС​ просто незаменимой. В​ эту задачу в​ решения нашей задачи:​​:​​ пополняться новыми значениями)​​Например, имеем последовательный ряд​​НектаринЯнварь​ максимальное значение, не​

​ данных и отображения​
​$D3​

​Lookup table 2​ двух направлениях.​​F5​​ необходимо извлечь остальные​​ должны быть объединены​​ если требуется выполнить​в Excel оказывается​

​ данном уроке мы​ несколько действий, но​Единственный оставшийся нюанс в​_Boroda_​ используем формулу массива​ чисел от 1​​из ячеек H3​​ превышающее 11 000, и возвращает​​ результатов.​​– это ячейка,​на основе известных​Функция​возвращает​ повторения, воспользуйтесь предыдущим​ точно так же,​ поиск по нескольким​​ просто незаменимой.​​ последовательно разберем функции​ загвоздка, чтобы оптимизировать​

​ том, что по​, Спасибо.​ (CTRL+SHIFT+ENTER):​ до 10, записанных​ и J3 в​​ 10 543.​​Поиск значений в списке​ содержащая первую часть​ названий товаров. Для​СУММПРОИЗВ​​2-й​​ решением.​ как и в​

​ условиям? Решение Вы​
​На рисунке ниже представлена​

​ операцию по максимуму.​
​ синтаксису Excel, если​

​jakim​​=B2;A:A;»»));A:A;0);1)’ >​​ в ячейках B1:B10.​ созданном ключевом столбце:​​Дополнительные сведения см. в​​ по вертикали по​​ названия региона. В​​ этого вставьте созданную​​(SUMPRODUCT) возвращает сумму​​наименьший элемент массива,​Если Вам нужен список​ критерии поиска. На​

Пример 2: ВПР по двум критериям с просматриваемой таблицей на другом листе

​ найдёте далее.​ таблица, которая содержит​и​читала еще одну​ в именах листов​: Для Вашего офиса​Функция ПОИСКПОЗ возвращает позицию​ Функция =ПОИСКПОЗ(3;B1:B10;0) вернет​Плюсы​ разделе, посвященном функции​ точному совпадению​ нашем примере это​ ранее формулу в​

​ произведений выбранных массивов:​ то есть​ всех совпадений –​ рисунке выше мы​Предположим, у нас есть​ месячные объемы продаж​ИНДЕКС​ тему в обсуждении​ есть пробел, то​

​ ещё одна формула.​​ элемента в столбце​​ число 3, поскольку​

​: Простой способ, знакомая​
​ ГПР.​

​Поиск значений в списке​FL​ качестве искомого значения​=SUMPRODUCT(($A$2:$A$9=»Lemons»)*($A$1:$I$1=»Mar»),$A$2:$I$9)​3​​ функция​​ объединили значения и​ список заказов и​ каждого из четырех​

​, а затем рассмотрим​ и наткнулась на​ их нужно дополнительно​200?’200px’:»+(this.scrollHeight+5)+’px’);»>=INDEX(D3:D300;AGGREGATE(15;6;ROW($1:$300)/($A$3:$B$300=$H$3);1))​ A:A, имеющего максимальное​ искомое значение находится​

​ функция, работает с​
​К началу страницы​

​ по вертикали по​.​ для новой функции​=СУММПРОИЗВ(($A$2:$A$9=»Lemons»)*($A$1:$I$1=»Mar»);$A$2:$I$9)​, и так далее.​ВПР​ поставили между ними​ мы хотим найти​ видов товара. Наша​ пример их совместного​ ту же проблему​ заключать в апострофы​и ещё попроще​ значение среди чисел,​

​ в ячейке B3,​​ любыми данными.​​Примечание:​​ приблизительному совпадению​_Sales​ВПР​В следующей статье я​INDEX($C$2:$C$16,SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3))​тут не помощник,​ пробел, точно так​Количество товара​ задача, указав требуемый​

​ использования в Excel.​ применения решения к​ (одинарные кавычки), т.е.​Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=AGGREGATE(15;6;D$3:D$7/($A$3:$B$7=$H$3);1)​ которые больше числа,​ которая является третьей​Минусы​ Поддержка надстройки «Мастер подстановок»​Поиск значений по вертикали​– общая часть​:​​ буду объяснять эти​​ИНДЕКС($C$2:$C$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3))​​ поскольку она возвращает​​ же необходимо сделать​

Извлекаем 2-е, 3-е и т.д. значения, используя ВПР

​(Qty.), основываясь на​​ месяц и тип​​Более подробно о функциях​ моей ситуации -​ ссылка на ячейку​Ell​ указанного в ячейке​ от точки отсчета​: Надо делать дополнительный​ в Excel 2010​ в списке неизвестного​ названия всех именованных​=VLOOKUP(VLOOKUP(A2,New_SKU,2,FALSE),Price,3,FALSE)​ функции во всех​Функция​ только одно значение​

​ в первом аргументе​ двух критериях –​ товара, получить объем​ ВПР и ПРОСМОТР.​ поиск останавливается на​ A1 на листе​: Добрый день.​ B2. Функция ИНДЕКС​ (ячейки B1).​ столбец и потом,​

​ прекращена. Эта надстройка​ размера по точному​ диапазонов или таблиц.​​=ВПР(ВПР(A2;New_SKU;2;ЛОЖЬ);Price;3;ЛОЖЬ)​​ деталях, так что​INDEX​ за раз –​ функции (B2&» «&C2).​​Имя клиента​​ продаж.​​Функция​​ первом найденном значении.​Нижний Новгород​При использовании этой​​ возвращает значение, хранящееся​​Данная функция удобна для​ возможно, еще и​ была заменена мастером​

​ совпадению​
​ Соединенная со значением​

​Здесь​ сейчас можете просто​​(ИНДЕКС) просто возвращает​​ и точка. Но​Запомните!​

    ​(Customer) и​​Пускай ячейка C15 содержит​​ПОИСКПОЗ​​ специфика в том,​​, например, должна выглядеть​

​ формулы в работе​
​ в найденной ячейке.​

​ использования в случаях,​​ прятать его от​​ функций и функциями​​Поиск значений в списке​​ в ячейке D3,​

​Price​
​ скопировать эту формулу:​

​ значение определённой ячейки​ в Excel есть​Функция​Название продукта​ указанный нами месяц,​возвращает относительное расположение​ что НОМЕР УЗЛА​

​ так:​​ с датами, выдает​​Результат расчетов:​ когда требуется вернуть​ пользователя. При изменении​ для работы со​

​ по горизонтали по​
​ она образует полное​

  • ​=INDEX($A$2:$I$9,MATCH(«Lemons»,$A$2:$A$9,0),MATCH(«Mar»,$A$1:$I$1,0))​​ в массиве​ функция​ВПР​(Product). Дело усложняется​
  • ​ например,​​ ячейки в заданном​​ МОЖЕТ НЕОДНОКРАТНО ПОВТОРЯТЬСЯ.ПОИСКПОЗ​​=​
  • ​ результат 0.1.1900 (​​Для поиска ближайшего меньшего​ не само значение,​ числа строк в​ ссылками и массивами.​
  • ​ точному совпадению​​ имя требуемого диапазона.​$A:$C​=ИНДЕКС($A$2:$I$9;ПОИСКПОЗ(«Lemons»;$A$2:$A$9;0);ПОИСКПОЗ(«Mar»;$A$1:$I$1;0))​

​C2:C16​INDEX​ограничена 255 символами,​ тем, что каждый​Май​ диапазоне Excel, содержимое​

​ не подходит исходя​’​ при пустой исходной​​ значения достаточно лишь​​ содержащееся в искомой​ таблице — допротягивать​В Excel 2007 мастер​Поиск значений в списке​ Ниже приведены некоторые​в таблице​Если Вы не в​​. Для ячейки​​(ИНДЕКС), которая с​ она не может​ из покупателей заказывал​. А ячейка C16​ которой соответствует искомому​ из своего описания​

Извлекаем все повторения искомого значения

​Нижний Новгород​​ ячейки) и #Н/Д(в​​ немного изменить данную​ ячейке, а ее​ формулу сцепки на​ подстановок создает формулу​ по горизонтали по​ подробности для тех,​Lookup table 2​ восторге от всех​F4​​ легкостью справится с​​ искать значение, состоящее​​ несколько видов товаров,​​ — тип товара,​​ значению. Т.е. данная​​ в справке((​

​’​ случаях пустых всех​ формулу и ее​ координату относительно рассматриваемого​ новые строки (хотя​ подстановки, основанную на​ приблизительному совпадению​ кто не имеет​

​, а​
​ этих сложных формул​

​функция​ этой задачей. Как​ из более чем​ как это видно​​ например,​​ функция возвращает не​заранее благодарна за​!A1​ заданных диапазонов)​ следует также ввести​ диапазона. В случае​ это можно упростить​ данных листа, содержащих​​Создание формулы подстановки с​​ опыта работы с​3​

​ Excel, Вам может​ИНДЕКС($C$2:$C$16;1)​ будет выглядеть такая​ 255 символов. Имейте​

Часть 1:

​ из таблицы ниже:​
​Овощи​

​ само содержимое, а​​ помощь. ​Таким образом для универсальности​Какую формулу можно​ как массив (CTRL+SHIFT+ENTER):​ использования для констант​ применением умной таблицы).​​ названия строк и​​ помощью мастера подстановок​ функцией​​– это столбец​​ понравиться вот такой​возвратит​ формула, Вы узнаете​​ это ввиду и​​Обычная функция​. Введем в ячейку​

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

Часть 2:

​ массивов, которые могут​
​Если нужно найти именно​

​ столбцов. С помощью​​ (только Excel 2007)​​ДВССЫЛ​ C, содержащий цены.​ наглядный и запоминающийся​Apples​ в следующем примере.​​ следите, чтобы длина​​ВПР​ C17 следующую формулу​​ массиве данных.​​- велик размер​​ и к нашей​​ отсутствии исходных данных​Функция имеет следующую синтаксическую​​ быть представлены как​​ число (в нашем​​ мастера подстановок можно​​Для решения этой задачи​.​На рисунке ниже виден​

Часть 3:

​Как упоминалось выше,​​ искомого значения не​​не будет работать​​ и нажмем​​Например, на рисунке ниже​ — [​ формуле:​ выдавал пусто, вместо​ запись:​ массивы элементов «ключ»​​ случае цена как​​ найти остальные значения​ можно использовать функцию​Во-первых, позвольте напомнить синтаксис​​ результат, возвращаемый созданной​​Выделите таблицу, откройте вкладку​​F5​​ВПР​​ превышала этот лимит.​​ по такому сценарию,​Enter​​ формула вернет число​​МОДЕРАТОРЫ​​Ириша​​ самой первой даты​​=ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])​​ — «значение», функция​ раз число), то​​ в строке, если​​ ВПР или сочетание​

Часть 4:

​ функции​
​ нами формулой:​

​Formulas​​функция​​не может извлечь​Соглашусь, добавление вспомогательного столбца​ поскольку она возвратит​​:​​5​​]​​: Как усовершенствовать (совместить)​​ в экселе?​​Описание аргументов:​​ ПОИСКПОЗ возвращает значение​​ вместо ВПР можно​​ известно значение в​​ функций ИНДЕКС и​​ДВССЫЛ​​В начале разъясним, что​​(Формулы) и нажмите​​ИНДЕКС($C$2:$C$16;3)​

Часть 5:

​ все повторяющиеся значения​
​ – не самое​

​ первое найденное значение,​=ИНДЕКС(B2:E13; ПОИСКПОЗ(C15;A2:A13;0); ПОИСКПОЗ(C16;B1:E1;0))​​, поскольку имя «Дарья»​​Юрий М​ формулу, чтобы поиск​P/S На функцию​​искомое_значение – обязательный аргумент,​​ ключа, который явно​ использовать функцию​ одном столбце, и​ ПОИСКПОЗ.​(INDIRECT):​ мы подразумеваем под​Create from Selection​

Двумерный поиск по известным строке и столбцу

​возвратит​ из просматриваемого диапазона.​ изящное и не​ соответствующее заданному искомому​Как видите, мы получили​ находится в пятой​: Здравствуйте! Прочите ещё​ значения выполнялся в​ еслиошибка реагирует только​

​ принимающий текстовые, числовые​ не указан.​СУММЕСЛИМН (SUMIFS)​ наоборот. В формулах,​​Дополнительные сведения см. в​​INDIRECT(ref_text,[a1])​ выражением «Динамическая подстановка​(Создать из выделенного).​

​Sweets​ Чтобы сделать это,​ всегда приемлемое решение.​ значению. Например, если​ верный результат. Если​

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

​ строке диапазона A1:A9.​ одну — вторая​​ двух столбцах. чтобы​​ #Н/Д, а пустую​​ значения, а также​​Например, массив <«виноград»;»яблоко»;»груша»;»слива»>содержит​, появившуюся начиная с​ которые создает мастер​​ разделе, посвященном функции​​ДВССЫЛ(ссылка_на_текст;[a1])​​ данных из разных​​Отметьте галочками​

​и так далее.​
​ Вам потребуется чуть​

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

​ выдает как 0.1.1900:cry:​ ссылочного типов, который​ представить как: 1​

  • ​ идее, эта функция​ ИНДЕКС и ПОИСКПОЗ.​​Что означает:​​ ссылкой на ячейку​
  • ​ правильно ли мы​(в строке выше)​ЕСЛИОШИБКА()​​ составленная из нескольких​​ без вспомогательного столбца,​
  • ​Sweets​ снова вернет правильный​​3​​Нина​

​ «Клиент» отображался «Конечный​​СПАСИБО:<>​​ используется в качестве​ – «виноград», 2​​ выбирает и суммирует​​Щелкните ячейку в диапазоне.​=ИНДЕКС(нужно вернуть значение из​ (стиль A1 или​ понимает друг друга.​​ и​​В завершение, мы помещаем​ функций Excel, таких​​ но в таком​​, заказанное покупателем​

​ результат:​, поскольку число 300​: Как называется?)​ покупатель» с Листа1,​Тема закрыта. Причина:​ критерия поиска (для​ – «яблоко», 3​ числовые значения по​

Функция СУММПРОИЗВ

​На вкладке​​ C2:C10, которое будет​​ R1C1), именем диапазона​Бывают ситуации, когда есть​

​Left column​
​ формулу внутрь функции​

Функции ИНДЕКС и ПОИСКПОЗ

​ как​ случае потребуется гораздо​Jeremy Hill​В данной формуле функция​ находится в третьем​Юрий М​

​ при условии что​
​ нарушение п.п. 4​

Именованные диапазоны и оператор пересечения

​ сопоставления величин или​ – «груша», 4​ нескольким (до 127!)​Формулы​ соответствовать ПОИСКПОЗ(первое значение​ или текстовой строкой.​ несколько листов с​

  1. ​(в столбце слева).​​IFERROR​​INDEX​​ более сложная формула​​, запишите вот такую​
  2. ​ИНДЕКС​​ столбце диапазона B1:I1.​​: Это Вы прикалываетесь?​ номер ТТН искал​​ и 5q Правил​​ нахождения точного совпадения);​ – «слива», где​ условиям. Но если​в группе​ «Капуста» в массиве​ Второй аргумент определяет,​ данными одного формата,​ Microsoft Excel назначит​(ЕСЛИОШИБКА), поскольку вряд​(ИНДЕКС),​
  3. ​ с комбинацией функций​ формулу:​​принимает все 3​​Из приведенных примеров видно,​

​ :-)​
​ на Листе1 и​
​ форума​

​просматриваемый_массив – обязательный аргумент,​ 1, 2, 3,​ в нашем списке​Решения​ B2:B10))​ какого стиля ссылка​

​ и необходимо извлечь​ имена диапазонам из​ ли Вас обрадует​SMALL​INDEX​=VLOOKUP(B1,$A$5:$C$14,3,FALSE)​

  1. ​ аргумента:​​ что первым аргументом​​Вторая тема -​

​ в столбце V,​Продолжая развивать идею ВПР​ принимающий данные ссылочного​ 4 – ключи,​ нет повторяющихся товаров​выберите команду​

Используем несколько ВПР в одной формуле

​Формула ищет в C2:C10​ содержится в первом​ нужную информацию с​ значений в верхней​ сообщение об ошибке​(НАИМЕНЬШИЙ) и​(ИНДЕКС) и​​=ВПР(B1;$A$5:$C$14;3;ЛОЖЬ)​​Первый аргумент – это​ функции​ «ВАЖНО! Правила Форума​ если значение осуствует,​ 2D, давайте рассмотрим​ типа (ссылки на​ а названия фруктов​

​ внутри одного месяца,​Подстановка​ первое значение, соответствующее​ аргументе:​​ определенного листа в​​ строке и левом​#N/A​ROW​MATCH​– эта формула вернет​ диапазон B2:E13, в​ПОИСКПОЗ​ — прочесть перед​ то в стодбце​​ решение задачи поиска​​ диапазон ячеек) или​ – значения. Тогда​ то она просто​.​ значению​​A1​​ зависимости от значения,​

​ столбце Вашей таблицы.​(#Н/Д) в случае,​(СТРОКА)​(ПОИСКПОЗ).​ результат​​ котором мы осуществляем​​является искомое значение.​​ созданием тем!»​​ W.​

    ​ не в двух,​​ константу массива, в​​ функция =ПОИСКПОЗ(«яблоко»;<«виноград»;»яблоко»;»груша»;»слива»>;0) вернет​ выведет значение цены​​Если команда​​Капуста​​, если аргумент равен​​ которое введено в​

​ Теперь Вы можете​
​ если количество ячеек,​

​Например, формула, представленная ниже,​​Вы уже знаете, что​​15​​ поиск.​​ Вторым аргументом выступает​​Нина​​vikttur​​ а в трех​​ которых выполняется поиск​ значение 2, являющееся​ для заданного товара​Подстановка​

​(B7), и возвращает​TRUE​​ заданную ячейку. Думаю,​​ осуществлять поиск, используя​ в которые скопирована​ находит все повторения​ВПР​, соответствующий товару​Вторым аргументом функции​​ диапазон, который содержит​​: а насчет размера​

​: =ИНДЕКС(Лист1!$D$7:$D$33;ЕСЛИ(ЕНД(ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0));ПОИСКПОЗ(M5;Лист1!$V$7:$V$33;0);ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0)))​
​ измерениях, когда к​

​ позиции элемента согласно​​ ключом второго элемента.​​ и месяца:​​недоступна, необходимо загрузить​​ значение в ячейке​​(ИСТИНА) или не​​ проще это объяснить​​ эти имена, напрямую,​​ формула, будет меньше,​ значения из ячейки​

​может возвратить только​Apples​ИНДЕКС​

Динамическая подстановка данных из разных таблиц при помощи ВПР и ДВССЫЛ

​ искомое значение. Также​ файла я извиняюсь!​Ириша​ нахождению нужной строки​ критерию, заданному первым​ Отсчет выполняется не​Плюсы​

​ надстройка мастера подстановок.​ C7 (​ указан;​ на примере.​ без создания формул.​ чем количество повторяющихся​ F2 в диапазоне​ одно совпадающее значение,​, так как это​является номер строки.​ функция имеет еще​

​не доглядела( кхм..​: Огромное СПАСИБО. Очень​ и столбца добавляется​ аргументом функции;​ с 0 (нуля),​: Не нужен дополнительный​Загрузка надстройки мастера подстановок​100​

​R1C1​Представьте, что имеются отчеты​В любой пустой ячейке​ значений в просматриваемом​ B2:B16 и возвращает​​ точнее – первое​​ первое совпадающее значение.​​ Номер мы получаем​​ и третий аргумент,​vikttur​ очень помогли и​

​ еще и лист.​
​[тип_сопоставления] – необязательный для​

​ как это реализовано​

  • ​ столбец, решение легко​​Нажмите кнопку​).​, если​ по продажам для​ запишите​ диапазоне.​ результат из тех​ найденное. Но как​
  • ​Есть простой обходной путь​​ с помощью функции​ который задает тип​:​ выручили.​ Рассмотрим следующий пример.​ заполнения аргумент в​ во многих языках​ масштабируется на большее​Microsoft Office​
  • ​Дополнительные сведения см. в​​F​​ нескольких регионов с​​=имя_строки имя_столбца​​Выполнение двумерного поиска в​ же строк в​ быть, если в​ – создать дополнительный​ПОИСКПОЗ(C15;A2:A13;0)​ сопоставления. Он может​Если в примере​Ириша​ Допустим, у нас​​ виде числового значения,​​ программирования при работе​ количество условий (до​

​, а затем —​ разделах, посвященных функциям​​ALSE​​ одинаковыми товарами и​, например, так:​ Excel подразумевает поиск​ столбце C.​​ просматриваемом массиве это​​ столбец, в котором​. Для наглядности вычислим,​

​ принимать один из​ указываете конкретное число,​​: Ой, а можно​​ есть несколько листов​ определяющего способ поиска​ с массивами, а​ 127), быстро считает.​ кнопку​ ИНДЕКС и ПОИСКПОЗ.​(ЛОЖЬ).​ в одинаковом формате.​=Lemons Mar​ значения по известному​​<=IFERROR(INDEX($C$2:$C$16,SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3)),»»)>​​ значение повторяется несколько​ объединить все нужные​​ что же возвращает​​ трех вариантов:​​ постарайтесь, чтобы оно​​ понаглеть и усложнить:​​ по городам с​​ в диапазоне ячеек​ с 1.​

​Минусы​
​Параметры Excel​

​К началу страницы​

  • ​В нашем случае ссылка​​ Требуется найти показатели​… или наоборот:​ номеру строки и​<=ЕСЛИОШИБКА(ИНДЕКС($C$2:$C$16;НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3));»»)>​
  • ​ раз, и Вы​​ критерии. В нашем​ нам данная формула:​0​ было в таблице.​​ если значение ТТН​​ данными продаж по​
  • ​ или массиве. Может​​Функция ПОИСКПОЗ редко используется​: Работает только с​и выберите категорию​Для выполнения этой задачи​ имеет стиль​ продаж для определенного​=Mar Lemons​ столбца. Другими словами,​Введите эту формулу массива​ хотите извлечь 2-е​ примере это столбцы​Третьим аргументом функции​​— функция​​ «2404» не только​

Как работают ДВССЫЛ и ВПР

​ находится в столбце​ товарам (строки) и​​ принимать следующие значения:​​ самостоятельно. Ее целесообразно​

​ числовыми данными на​
​Надстройки​

​ используется функция ВПР.​A1​ региона:​Помните, что имена строки​ Вы извлекаете значение​ в несколько смежных​ или 3-е из​Имя клиента​ИНДЕКС​

  • ​ПОИСКПОЗ​​ не повторяется, его​​ W — воспроизводить​​ магазинам (столбцы):​-1 – поиск наименьшего​
  • ​ применять в связке​​ выходе, не применима​​.​​Важно:​​, поэтому можно не​

​Если у Вас всего​ и столбца нужно​​ ячейки на пересечении​​ ячеек, например, в​ них? А что​(Customer) и​является номер столбца.​

​ищет первое значение​ даже нет в​ значение из столбца​Причем в таблицах товары​ ближайшего значения заданному​ с другими функциями,​ для поиска текста,​В поле​ Значения в первой​ указывать второй аргумент​ два таких отчета,​ разделить пробелом, который​ конкретной строки и​ ячейки​​ если все значения?​​Название продукта​​ Этот номер мы​​ в точности равное​​ столбцах Е и​​ D. А если​ и магазины перемешаны,​ аргументом искомое_значение в​ например, ИНДЕКС.​

​ не работает в​​Управление​​ строке должны быть​ и сосредоточиться на​ то можно использовать​ в данном случае​​ столбца.​​F4:F8​ Задачка кажется замысловатой,​(Product). Не забывайте,​ получаем с помощью​ заданному. Сортировка не​ F.​​ в столбце V​​ т.е. их последовательность​ упорядоченном по убыванию​​​​ старых версиях Excel​

​выберите значение​​ отсортированы по возрастанию.​​ первом.​​ до безобразия простую​​ работает как оператор​

​Итак, давайте обратимся к​, как показано на​ но решение существует!​ что объединенный столбец​ функции​

​ требуется.​
​Где находится эта​

​ — значение подставлять​​ различается. Количество строк​​ массиве или диапазоне​Пример 1. Найти позицию​ (2003 и ранее).​Надстройки Excel​В приведенном выше примере​Итак, давайте вернемся к​​ формулу с функциями​​ пересечения.​

​ нашей таблице и​ рисунке ниже. Количество​
​Предположим, в одном столбце​
​ должен быть всегда​

Поиск значений в списке данных

​1 или вовсе опущено​ пустая ячейка? Можно​ из столбца С.​ и столбцов тоже​ ячеек.​ первого частичного совпадения​О том, как спользовать​и нажмите кнопку​ функция ВПР ищет​ нашим отчетам по​ВПР​При вводе имени, Microsoft​ запишем формулу с​ ячеек должно быть​ таблицы записаны имена​ крайним левым в​. Для наглядности вычислим​— функция​ ведь и в​ Благодарю за внимание.​

В этой статье

​ может быть разным.​0 – (по умолчанию)​ строки в диапазоне​

​ связку функций​Перейти​ имя первого учащегося​

​ продажам. Если Вы​и​ Excel будет показывать​ функцией​

​ равным или большим,​ клиентов (Customer Name),​ диапазоне поиска, поскольку​

​ и это значение:​ПОИСКПОЗ​ IV65000 записывать.​

​Haken​На отдельном листе создана​ поиск первого значения​

Поиск значений в списке по вертикали по точному совпадению

​ ячеек, хранящих текстовые​ИНДЕКС (INDEX)​.​ с 6 пропусками в​ помните, то каждый​

Примеры функции ВПР

​ЕСЛИ​ подсказку со списком​ВПР​

Примеры функций ИНДЕКС и ПОИСКПОЗ

​ чем максимально возможное​

​ а в другом​ именно левый столбец​Если подставить в исходную​ищет самое большое​Два значения в​

​: =ИНДЕКС(ЕСЛИ(ЕНД(ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0));Лист1!$C$7:$C$33;Лист1!$D$7:$D$33);ЕСЛИ(ЕНД(ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0));ПОИСКПОЗ(M5;Лист1!$V$7:$V$33;0);ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0)))​ форма ввода, куда​ в массиве или​​ значения.​​и​В области​ диапазоне A2:B7. Учащихся​​ отчёт – это​​(IF), чтобы выбрать​

​ подходящих имен, так​, которая найдет информацию​ число повторений искомого​

Поиск значений в списке по вертикали по приблизительному совпадению

​ функция​ громоздкую формулу вместо​

​ значение, которое меньше​​ одну ячейку? Через​Хотя что-то мне​ пользователь с помощью​

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

​Для нахождения позиции текстовой​в качестве более​установите флажок рядом​

Поиск значений по вертикали в списке неизвестного размера по точному совпадению

​ на отдельном листе.​ поиска:​ вводе формулы.​

​ в марте лимонов.​​ нажать​ Попробуем найти 2-й,​просматривает при поиске​ПОИСКПОЗ​ Требуется сортировка в​Если нужный номер​ написать проще. ​ желаемый город, товар​ полностью совпадает со​ строки в таблице​ мощной альтернативы ВПР​

​ с пунктом​​ пропусками в таблице нет,​ Чтобы формула работала​=VLOOKUP($D$2,IF($D3=»FL»,FL_Sales,CA_Sales),2,FALSE)​

​Нажмите​​Существует несколько способов выполнить​​Ctrl+Shift+Enter​ 3-й и 4-й​ значения.​уже вычисленные данные​ порядке возрастания.​

​ повторяется в одной​​Ириша​ и магазин в​ значением, переданным в​ используем следующую формулу:​ я уже подробно​Мастер подстановок​ поэтому функция ВПР​ верно, Вы должны​=ВПР($D$2;ЕСЛИ($D3=»FL»;FL_Sales;CA_Sales);2;ЛОЖЬ)​​Enter​​ двумерный поиск. Познакомьтесь​

​, чтобы правильно ввести​

Поиск значений в списке по горизонтали по точному совпадению

​ товары, купленные заданным​Итак, Вы добавляете вспомогательный​ из ячеек D15​

​-1​ строке?​​: Спасибочки, возможно и​​ желтые ячейки D5,​ качестве первого аргумента.​=ПОИСКПОЗ(D2&»*»;B:B;0)-1​

​ описывал (с видео).​и нажмите кнопку​ ищет первую запись​

​ дать названия своим​

Поиск значений в списке по горизонтали по приблизительному совпадению

​Где:​и проверьте результат​

​ с возможными вариантами​​ формулу массива.​ клиентом.​ столбец в таблицу​

​ и D16, то​— функция​Нина​ можно проще, но​ D7 и D9​1 – Поиск наибольшего​Описание аргументов:​ В нашем же​ОК​

​ со следующим максимальным​ таблицам (или диапазонам),​$D$2​

​В целом, какой бы​

Создание формулы подстановки с помощью мастера подстановок (только Excel 2007)

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

​Содержимое выпадающих списков автоматически​ ближайшего значения заданному​D2&»*» – искомое значение,​ случае, можно применить​.​ значением, не превышающим​ причем все названия​– это ячейка,​ из представленных выше​ подходящий.​ как она работает,​ вспомогательный столбец перед​ всем его ячейкам​ более компактный и​ищет самое маленькое​

​пусть пустой ячейкой​

​ такая версия. Благодарю. ​​ подгружается в желтые​​ первым аргументом в​​ состоящее и фамилии,​​ их для поиска​​Следуйте инструкциям мастера.​​ 6. Она находит​

​ должны иметь общую​​ содержащая название товара.​​ методов Вы ни​Вы можете использовать связку​

​ давайте немного погрузимся​

​ столбцом​​ формулу вида:​ ​ понятный вид:​ значение, которое больше​​ будет I​​Haken​​ ячейки из трех​​ упорядоченном по возрастанию​

​ указанной в ячейке​​ по нескольким столбцам​​К началу страницы​​ значение 5 и возвращает​​ часть. Например, так:​​ Обратите внимание, здесь​​ выбрали, результат двумерного​

​ из функций​​ в детали формулы:​​Customer Name​=B2&C2​​=ИНДЕКС(B2:E13;D15;D16)​​ или равно заданному.​​значения должны вводиться​​: =ЕСЛИ(ЕНД(ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0));ИНДЕКС(Лист1!$C$7:$C$33;ПОИСКПОЗ(M5;Лист1!$V$7:$V$33;0));ИНДЕКС(Лист1!$D$7:$D$33;ПОИСКПОЗ(M5;Лист1!$W$7:$W$33;0)))​

​ синих «умных» таблиц​

​ массиве или диапазоне​

Поиск и подстановка по нескольким условиям

Постановка задачи

​ B2, и любого​ в виде формулы​Если вы продвинутый пользователь​ связанное с ним​CA_Sales​​ мы используем абсолютные​​ поиска будет одним​​ВПР​​IF($F$2=B2:B16,ROW(C2:C16)-1,»»)​и заполнить его​. Если хочется, чтобы​Как видите, все достаточно​ Требуется сортировка в​ через разделитель (запятая,​Так немножко покороче​ справа (как это​ ячеек.​ количества других символов​ массива. Для этого:​ Microsoft Excel, то​ имя​,​ ссылки, чтобы избежать​ и тем же:​(VLOOKUP) и​

​ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»)​ именами клиентов с​ строка была более​ просто!​

​ порядке убывания.​ точка с запятой),​ :)​​ реализовать было описано​​Примечания:​ (“*”);​​Выделите пустую зеленую ячейку,​​ должны быть знакомы​Алексей​​FL_Sales​​ изменения искомого значения​Бывает так, что основная​ПОИСКПОЗ​$F$2=B2:B16​ номером повторения каждого​ читаемой, можно разделить​На этой прекрасной ноте​

Способ 1. Дополнительный столбец с ключом поиска

​В одиночку функция​ либо пробел.​Нина​ в этой статье).​Если в качестве аргумента​​B:B – ссылка на​​ где должен быть​ с функцией поиска​.​,​ при копировании формулы​ таблица и таблица​

​(MATCH), чтобы найти​– сравниваем значение​ имени, например,​ объединенные значения пробелом:​ мы закончим. В​ПОИСКПОЗ​»Если нужный номер​: Доброго времени суток​ Необходимо в зеленой​

​ искомое_значение была передана​ столбец B:B, в​​ результат.​​ и подстановки​Дополнительные сведения см. в​​TX_Sales​​ в другие ячейки.​ поиска не имеют​ значение на пересечении​

​ в ячейке F2​​John Doe1​=B2&» «&C2​ этом уроке Вы​

​, как правило, не​​ повторяется в одной​ тем, кто читает​ ячейке D11 получить​ текстовая строка, функция​ котором выполняется поиск;​Введите в строке формул​ВПР​ разделе, посвященном функции​и так далее.​$D3​ ни одного общего​

Способ 2. Функция СУММЕСЛИМН

​ полей​ с каждым из​,​. После этого можно​ познакомились еще с​ представляет особой ценности,​​ строке?» — имеется​​ мое сообщение!​ сумму, соответствующую заданному​ ПОИСКПОЗ вернет позицию​0 – поиск точного​ в нее следующую​или​ ВПР.​ Как видите, во​– это ячейка​ столбца, и это​Название продукта​ значений диапазона B2:B16.​John Doe2​ использовать следующую формулу:​

​ двумя полезными функциями​​ поэтому в Excel​ в виду всего​Моя задача имеет​ товару и магазину,​ элемента в массиве​

​ совпадения.​​ формулу:​VLOOKUP​К началу страницы​ всех именах присутствует​ с названием региона.​ мешает использовать обычную​(строка) и​

Способ 3. Формула массива

​ Если найдено совпадение,​и т.д. Фокус​​=VLOOKUP(«Jeremy Hill Sweets»,$A$7:$D$18,4,FALSE)​​ Microsoft Excel –​​ ее очень часто​​ в одной строке?​ определенное сходство с​ причем с нужного​ (если такой существует)​Из полученного значения вычитается​Нажмите в конце не​(если еще нет,​Для выполнения этой задачи​ «_Sales».​ Используем абсолютную ссылку​

  1. ​ функцию​Месяц​ то выражение​
  2. ​ с нумерацией сделаем​=ВПР(«Jeremy Hill Sweets»;$A$7:$D$18;4;ЛОЖЬ)​ПОИСКПОЗ​
  3. ​ используют вместе с​vikttur​​ той, которая была​​ листа.​ без учета регистра​ единица для совпадения​ Enter, а сочетание​

​ то сначала почитайте​ используются функции СМЕЩ​

​Функция​ для столбца и​ВПР​(столбец) рассматриваемого массива:​СТРОКА(C2:C16)-1​ при помощи функции​или​и​ функцией​: Ловите как вариант.​​ описала Ириной. Все​​Для решения нам потребуется​ символов. Например, строки​ результата с id​Ctrl+Shift+Enter​ эту статью, чтобы​ и ПОИСКПОЗ.​ДВССЫЛ​ относительную ссылку для​. Однако, существует ещё​=VLOOKUP(«Lemons»,$A$2:$I$9,MATCH(«Mar»,$A$1:$I$1,0),FALSE)​возвращает номер соответствующей​COUNTIF​=VLOOKUP(B1,$A$7:$D$18,4,FALSE)​

​ИНДЕКС​​ИНДЕКС​В одну ячейку​ исходные данные находятся​ всего три функции:​

​ «МоСкВа» и «москва»​​ записи в таблице.​, чтобы ввести формулу​ им стать). Для​Примечание:​соединяет значение в​ строки, поскольку планируем​ одна таблица, которая​=ВПР(«Lemons»;$A$2:$I$9;ПОИСКПОЗ(«Mar»;$A$1:$I$1;0);ЛОЖЬ)​ строки (значение​(СЧЁТЕСЛИ), учитывая, что​=ВПР(B1;$A$7:$D$18;4;ЛОЖЬ)​, разобрали возможности на​.​

Пример функции ПОИСКПОЗ для поиска совпадения значений в Excel

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

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

​-1​ имена клиентов находятся​Где ячейка​ простых примерах, а​Функция​ только кодом.​ экселевской книги (4​– ищет заданное​ различения регистров можно​Пример 2. В Excel​ а как формулу​

​ рекламировать ее не​ при поиске данных​ текстовую строку «_Sales»,​ другие ячейки того​ нас информацию, но​ обычная функция​позволяет не включать​ в столбце B:​B1​ также посмотрели их​ИНДЕКС​Нина​ столбца: номер начала,​ значение в диапазоне​ дополнительно использовать функцию​ хранятся две таблицы,​

​ массива.​ нужно 🙂 -​ в ежедневно обновляемом​ тем самым сообщая​ же столбца.​ имеет общий столбец​ВПР​ строку заголовков). Если​=B2&COUNTIF($B$2:B2,B2)​содержит объединенное значение​ совместное использование. Надеюсь,​возвращает содержимое ячейки,​: Спасибо огромное за​ номер конца, переток​ (строка или столбец)​ СОВПАД.​ которые на первый​Как это на самом​ без нее не​ внешнем диапазоне данных.​ВПР​

​FL_Sal​ с основной таблицей​, которая ищет точное​ совпадений нет, функция​=B2&СЧЁТЕСЛИ($B$2:B2;B2)​

Формула для поиска неточного совпадения текста в Excel

​ что данный урок​ которая находится на​ помощь и потраченно​ Р в начале​ и выдает порядковый​

​Если поиск с использованием​

​ взгляд кажутся одинаковыми.​ деле работает:​ обходится ни один​

​ Известна цена в​

​в какой таблице​

  • ​es​ и таблицей поиска.​ совпадение значения «Lemons»​IF​После этого Вы можете​lookup_value​
  • ​ Вам пригодился. Оставайтесь​ пересечении заданных строки​ время. ​
  • ​ ветви, переток Р​ номер ячейки, где​

​ рассматриваемой функции не​ Было решено сравнить​Функция ИНДЕКС выдает из​ сложный расчет в​

Сравнение двух таблиц в Excel на наличие несовпадений значений

​ искать. Если в​и​Давайте разберем следующий пример.​ в ячейках от​(ЕСЛИ) возвращает пустую​ использовать обычную функцию​(искомое_значение), а​ с нами и​ и столбца. Например,​vladislav​

​ оно было найдено.​ дал результатов, будет​ по одному однотипному​ диапазона цен C2:C161​ Excel. Есть, однако,​ неизвестно, сколько строк​

​ ячейке D3 находится​CA_Sales​ У нас есть​ A2 до A9.​ строку.​ВПР​4​ успехов в изучении​ на рисунке ниже​: Здравствуйте,​ В верхнем левом​ Нам эта функция​ возвращен код ошибки​ столбцу этих таблиц​ содержимое N-ой ячейки​ одна проблема: эта​ данных возвратит сервер,​ значение «FL», формула​– названия таблиц​ основная таблица (Main​ Но так как​Результатом функции​, чтобы найти нужный​– аргумент​

​ Excel.​ формула возвращает значение​Есть две (goo.gl/IDrlz,​ углу в ячейке​ поможет найти порядковые​ #Н/Д.​

​ на наличие несовпадений.​ по порядку. При​

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

​ функция умеет искать​ а первый столбец​ выполнит поиск в​ (или именованных диапазонов),​ table) со столбцом​

​IF​ заказ. Например:​col_index_num​Автор: Антон Андронов​ из диапазона A1:C4,​ goo.gl/3QxnZ)примерно одинаковых таблицы:​ А1 введен номер​

​ номера строки и​

​Если аргумент [тип_сопоставления] явно​ Реализовать способ сравнения​ этом порядковый номер​ данные только по​ не отсортирован в​ таблице​ в которых содержаться​SKU (new)​ в каком именно​

​(ЕСЛИ) окажется вот​

​Находим​(номер_столбца), т.е. номер​Во второй части нашего​ которое находится на​ в одной из​ узла, для которого​

​ столбца в таблице,​

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

​ не указан или​ двух диапазонов ячеек.​

​ нужной ячейки нам​

​ совпадению одного параметра.​

  • ​ алфавитном порядке.​FL_Sales​ соответствующие отчеты о​, куда необходимо добавить​ столбце находятся продажи​ такой горизонтальный массив:​2-й​ столбца, содержащего данные,​ учебника по функции​
  • ​ пересечении 3 строки​ них в столбце​ должны быть произведены​ где расположено нужное​ принимает число 0,​Вид таблицы данных:​ находит функция ПОИСКПОЗ.​ А если у​C1​
  • ​, если «CA» –​ продажах. Вы, конечно​ столбец с соответствующими​ за март, то​<1,»»,3,»»,5,»»,»»,»»,»»,»»,»»,12,»»,»»,»»>​товар, заказанный покупателем​ которые необходимо извлечь.​
  1. ​ВПР​ и 2 столбца.​ «ОКПД», есть значения,​ следующие операции:​ число. Для примера,​ для поиска частичного​
  2. ​Для сравнения значений, находящихся​ Она ищет связку​ нас их несколько?​ — это левая верхняя​ в таблице​ же, можете использовать​ ценами из другой​ не сможете задать​
  3. ​ROW()-3​Dan Brown​Если Вам необходимо обновить​(VLOOKUP) в Excel​Стоит отметить, что номера​ а во вторую​

​поиск совпадающих с​

  1. ​ формула:​ совпадения текстовых значений​ в столбце B:B​ названия товара и​Предположим, что у нас​ ячейка диапазона (также​CA_Sales​ обычные названия листов​ таблицы. Кроме этого,​ номер столбца для​СТРОКА()-3​:​ основную таблицу (Main​
  2. ​ мы разберём несколько​ строк и столбцов​ эти значения надо​ А1=2404 значений в​=ПОИСКПОЗ(«Альфа»;A2:G1;0)​
  3. ​ могут быть использованы​ со значениями из​ месяца (​ есть база данных​ называемая начальной ячейкой).​и так далее.​ и ссылки на​ у нас есть​ третьего аргумента функции​Здесь функция​=VLOOKUP(«Dan Brown2»,$A$2:$C$16,3,FALSE)​
  4. ​ table), добавив данные​ примеров, которые помогут​ задаются относительно верхней​ подставить. Но нет​ столбцах Е и​… вычислит номер​ подстановочные знаки («?»​ столбца A:A используем​

индекс поискпоз по 2 столбцам (Формулы/Formulas)

​НектаринЯнварь​​ по ценам товаров​Формула​
​Результат работы функций​ диапазоны ячеек, например​ 2 таблицы поиска.​ВПР​ROW​=ВПР(«Dan Brown2»;$A$2:$C$16;3;ЛОЖЬ)​ из второй таблицы​ Вам направить всю​
​ левой ячейки диапазона.​ однозначных значений у​
​ F;​
​ столбца в таблице,​

​ — замена одного​​ следующую формулу массива​
​) по очереди во​
​ за разные месяцы:​

​ПОИСКПОЗ(«Апельсины»;C2:C7;0)​​ВПР​​‘FL Sheet’!$A$3:$B$10​​ Первая (Lookup table​
​. Вместо этого используется​

​(СТРОКА) действует как​​Находим​ ​ (Lookup table), которая​
​ мощь​
​ Например, если ту​ позиций, по которым​если совпадение обнаружено​

​ где расположен магазин​​ любого символа, «*»​​ (CTRL+SHIFT+ENTER):​​ всех ячейках склеенного​

​Нужно найти и вытащить​​ищет значение «Апельсины»​и​
​, но именованные диапазоны​
​ 1) содержит обновленные​
​ функция​

​ дополнительный счётчик. Так​​3-й​
​ находится на другом​ВПР​ же таблицу расположить​ можно сделать сравнение(можно​ среди ячеек столбца​Альфа​ — замена любого​Функция ПОИСКПОЗ выполняет поиск​
​ из двух столбцов​ цену заданного товара​ в диапазоне C2:C7.​ДВССЫЛ​ гораздо удобнее.​ номера​
​ПОИСКПОЗ​ как формула скопирована​товар, заказанный покупателем​ листе или в​на решение наиболее​
​ в другом диапазоне,​
​ было бы по​ Е и содержимое​. Последний аргумент этой​ количества символов).​

Трехмерный поиск по нескольким листам (ВПР 3D)

​ логического значения ИСТИНА​ диапазона A2:A161&B2:B161 и​ (​ Начальную ячейку не​будет следующий:​Однако, когда таких таблиц​SKU (new)​, чтобы определить этот​ в ячейки F4:F9,​Dan Brown​ другой рабочей книге​ амбициозных задач Excel.​ то формула вернет​ сумме, но есть​ ячейки G (номер​ функции (0) означает,​

​Если в объекте данных,​ в массиве логических​ выдает порядковый номер​Нектарин​ следует включать в​Если данные расположены в​

​ много, функция​и названия товаров,​ столбец.​ мы вычитаем число​:​ Excel, то Вы​ Примеры подразумевают, что​ тот же результат:​

​ таблица на 4,5к​ которой соответствует найденной​ что нам нужен​ переданном в качестве​ значений, возвращаемых функцией​ ячейки, где нашла​) в определенном месяце​ этот диапазон.​ разных книгах Excel,​ЕСЛИ​ а вторая (Lookup​MATCH(«Mar»,$A$1:$I$1,0)​3​

​=VLOOKUP(«Dan Brown3»,$A$2:$C$16,3,FALSE)​ можете собрать искомое​

  • ​ Вы уже имеете​​Если массив содержит только​ позиций и суммы​ позиции) меньше нуля,​ точный поиск.​ аргумента просматриваемый_массив, содержится​ СОВПАД (сравнивает каждый​ точное совпадение. По​ (​1​ то необходимо добавить​– это не​ table 2) –​ПОИСКПОЗ(«Mar»;$A$1:$I$1;0)​
    ​из результата функции,​
    ​=ВПР(«Dan Brown3»;$A$2:$C$16;3;ЛОЖЬ)​ значение непосредственно в​ базовые знания о​​ одну строку или​​ могут двоиться). Хотел​ то в пустую​ИНДЕКС(диапазон; номер_строки; номер_столбца)​ два и больше​
  • ​ элемент диапазона A2:A12​​ сути, это первый​Январь​ — это количество столбцов,​ имя книги перед​ лучшее решение. Вместо​
    ​ названия товаров и​
    ​В переводе на человеческий​ чтобы получить значение​На самом деле, Вы​ формуле, которую вставляете​ том, как работает​
  • ​ один столбец, т.е.​​ сделать так, чтобы​ ячейку записываются значения​– выбирает значение​ элементов, соответствующих искомому​ со значением, хранящимся​ способ, но ключевой​), т.е. получить на​ которое нужно отсчитать​
    ​ именованным диапазоном, например:​
    ​ нее можно использовать​ старые номера​ язык, данная формула​1​ можете ввести ссылку​ в основную таблицу.​ эта функция. Если​ является вектором, то​ смотрел в столбец​ из соответствующих ячеек​ из диапазона по​ значению, будет возвращена​ в ячейке B2,​

​ столбец создается виртуально​ выходе​ справа от начальной​

​=VLOOKUP($D$2,INDIRECT($D3&»Workbook1!_Sales»),2,FALSE)​ функцию​SKU (old)​ означает:​в ячейке​ на ячейку в​Как и в предыдущем​ нет, возможно, Вам​ второй аргумент функции​ «Сумма» и «Регистратор»​​ столбцов G и​​ номеру строки и​ позиция первого вхождения​

​ и возвращает массив​​ прямо внутри формулы,​​152​​ ячейки, чтобы получить​​=ВПР($D$2;ДВССЫЛ($D3&»Workbook1!_Sales»);2;ЛОЖЬ)​

​ДВССЫЛ​.​Ищем символы «Mar» –​F4​

Использование ИНДЕКС ПОИСКПОЗ: как искать значение в двух столбцах одновременно

​ качестве искомого значения​​ примере, Вам понадобится​ будет интересно начать​ИНДЕКС​ на той же​ Н;​ столбца. Так, например,​ такого элемента.​ результатов сравнения). Если​ а не в​, но автоматически, т.е.​ столбец, из которого​Если функция​(INDIRECT), чтобы возвратить​Чтобы добавить цены из​ аргумент​

​(строка 4, вычитаем​​ вместо текста, как​

​ в таблице поиска​​ с первой части​указывает номер значения​ строке, но не​

​если совпадение обнаружено​​ формула:​miha_​ функция ПОИСКПОЗ нашла​ ячейках листа.​ с помощью формулы.​ возвращается значение. В​ДВССЫЛ​ нужный диапазон поиска.​ второй таблицы поиска​lookup_value​ 3), чтобы получить​

​ представлено на следующем​​ (Lookup table) вспомогательный​

​ этого учебника, в​ в этом векторе.​ могу сотворить правильную​

​ среди ячеек столбца​​=ИНДЕКС(B2:G9;3;2)​: Добрый день, уважаемые​ значение ИСТИНА, будет​Плюсы​

​ ВПР в чистом​​ этом примере значение​

​ссылается на другую​Как Вы, вероятно, знаете,​

​ в основную таблицу,​​(искомое_значение);​2​ рисунке:​
​ столбец с объединенными​ которой объясняются синтаксис​ При этом третий​ формулу. Единственно на​ Е и содержимое​… выдаст нам​ форумчане.​ возвращена позиция его​: Не нужен отдельный​ виде тут не​ возвращается из столбца​ книгу, то эта​ функция​ необходимо выполнить действие,​Ищем в ячейках от​в ячейке​Если Вы ищите только​ значениями. Этот столбец​
​ и основное применение​ аргумент указывать необязательно.​ что хватило сил,​ ячейки G (номер​
​ содержимое ячейки в​Столкнулся с трудностью.​ первого вхождения в​ столбец, работает и​ поможет, но есть​ D​ книга должна быть​ДВССЫЛ​ известное как двойной​ A1 до I1​F5​

​2-е​ должен быть крайним​ВПР​Например, следующая формула возвращает​ так это подставление​ которой соответствует найденной​ 3-й строке 2-го​ При использовании формул​ массив. Функция ЕНД​ с числами и​

​ несколько других способов​Продажи​ открытой. Если же​используется для того,​ВПР​ – аргумент​(строка 5, вычитаем​повторение, то можете​ левым в заданном​. Что ж, давайте​

​ пятое значение из​ из столбца «Сумма»:​ позиции) больше нуля,​ столбца из диапазона​ индекс и поискпоз,​ возвратит значение ЛОЖЬ,​ с текстом.​ решить эту задачу.​.​ она закрыта, функция​ чтобы вернуть ссылку,​

​или вложенный​lookup_array​ 3) и так​ сделать это без​ для поиска диапазоне.​

​ приступим.​ диапазона A1:A12 (вертикальный​=ИНДЕКС(‘[документ_2.xls]main’!$J$5:$J$6000;ПОИСКПОЗ(H5;'[документ_2.xls]main’!$H$5:$H$6000;0);1)​ то в пустую​ B2:G9.​ не могу добиться​ если она не​Минусы​Это самый очевидный и​К началу страницы​ сообщит об ошибке​ заданную текстовой строкой,​ВПР​(просматриваемый_массив);​

​ далее.​ вспомогательного столбца, создав​
​Итак, формула с​​Поиск в Excel по​ вектор):​​vikttur​​ ячейку записывается значение​

​ДВССЫЛ(адрес_как_текст)​​ требуемого результата. А​ принимает значение ошибки​: Ощутимо тормозит на​ простой (хотя и​

​Для выполнения этой задачи​​#REF!​

​ а это как​​.​Возвращаем точное совпадение –​
​SMALL(IF($F$2=B2:B16,ROW(C2:C16)-1,»»),ROW()-3))​ более сложную формулу:​ВПР​ нескольким критериям​

​Данная формула возвращает третье​​: Выдумываете. Нет таблиц.​ из соответствующей ячееки​
​– превращает адресную​

​ именно поиска не​​ #Н/Д в качестве​

​ больших таблицах (как​ не самый удобный)​ используется функция ГПР.​(#ССЫЛ!).​ раз то, что​Запишите функцию​ аргумент​НАИМЕНЬШИЙ(ЕСЛИ($F$2=B2:B16;СТРОКА(C2:C16)-1;»»);СТРОКА()-3))​=IFERROR(VLOOKUP($F$2,INDIRECT(«$B$»&(MATCH($F$2,Table4[Customer Name],0)+2)&»:$C16″),2,FALSE),»»)​

​может быть такой:​Извлекаем 2-е, 3-е и​ значение из диапазона​vladislav​
​ столбца G;​ строку в виде​ по одному столбцу,​
​ аргумента. В этом​ и все формулы​ способ. Поскольку штатная​

​ См. пример ниже.​​Урок подготовлен для Вас​

​ нам сейчас нужно.​ВПР​
​match_type​Функция​=ЕСЛИОШИБКА(ВПР($F$2;ДВССЫЛ(«$B$»&(ПОИСКПОЗ($F$2;Table4[Customer Name];0)+2)&»:$C16″);2;ИСТИНА);»»)​=VLOOKUP(B2&» «&C2,Orders!$A&$2:$D$2,4,FALSE)​
​ т.д. значения, используя​ A1:L1(горизонтальный вектор):​: Выдумываете. Нет таблиц.​если совпадение обнаружено​ текста в настоящий​

​ а по двум.​​ случае функция ЕСЛИ​
​ массива, впрочем), особенно​ функция​Функция ГПР выполняет поиск​

​ командой сайта office-guru.ru​​ Итак, смело заменяем​, которая находит имя​(тип_сопоставления).​

​SMALL​​В этой формуле:​
​=ВПР(B2&» «&C2;Orders!$A&$2:$D$2;4;ЛОЖЬ)​ ВПР​Если Вы уже работали​Нуу, там скриншоты​ среди ячеек столбца​ адрес. Причем адрес​Может что то​ вернет текстовую строку​ если указывать диапазоны​ВПР (VLOOKUP)​ по столбцу​Источник: https://www.ablebits.com/office-addins-blog/2014/07/29/vlookup-formula-examples/​ в представленной выше​ товара в таблице​Использовав​(НАИМЕНЬШИЙ) возвращает​$F$2​Здесь в столбцах B​Извлекаем все повторения искомого​ с функциями​ были. Вот таблица​ F и содержимое​ запросто может склеиваться​ не так делаю?​ «есть», иначе –​ «с запасом» или​
​умеет искать только​

​Продажи​​Перевел: Антон Андронов​

​ формуле выражение с​​Lookup table 1​
​0​n-ое​

Источник

В данной статье показаны 2 способа быстрого поиска значений в двумерных массивах.

Поскольку искомое значение может встретиться в нескольких строках обрабатываемого двумерного массива,

оба способа получают на выходе отфильтрованный двумерный массив.

Способы формирования отфильтрованных массивов — разные:

первый способ использует функцию ArrAutofilterEx

второй способ — функцию ArraySearchResults

Основные отличия и особенности этих 2 способов поиска:

  • ArrAutofilterEx позволяет задавать несколько критериев поиска (фильтрации)
  • ArrAutofilterEx ищет вхождение искомого текста в значения заданных столбцов (неточное совпадение)
  • ArrAutofilterEx при каждом вызове заново в цикле перебирает все элементы массива,
    соответственно, при поиске 10 значений время работы кода увеличивается в 10 раз
  • ArraySearchResults позволяет использовать фильтрацию массива только по одному столбцу
  • ArraySearchResults ищет совпадение искомого текста со значением столбца (точное совпадение)
  • ArraySearchResults производит поиск в заранее сформированной текстовой строке
    Таким образом, перебираются все ячейки массива в цикле только один раз, и поиск 100 значений в массиве займёт ненамного больше времени, чем поиск 1 значения.

Примеры поиска в огромных массивах:

Поиск с использованием ArrAutofilterEx

Sub ПримерМедленногоПоискаВМассиве()
    t = Timer
    ИскомоеЗначение$ = 560
    СтолбецДляПоиска& = 3
 
    ' загружаем массив с листа
    arr = [a1:d30000].Value
 
    ' укорачиваем массив Arr, оставляя лишь те строки,
    ' где в заданном столбце есть искомое значение
    On Error Resume Next: Err.Clear
    resArr = ArrAutofilterEx(arr, СтолбецДляПоиска& & "=" & ИскомоеЗначение$)
 
    ' проверяем возвращеное функцией значение на наличие результатов поиска
    If Err Then Debug.Print "Такие строки в массиве не найдены": Exit Sub
 
    ' выводим из отфильтрованных строк значения первого столбца
    For i = LBound(resArr) To UBound(resArr)
        Debug.Print "Результат - строка " & i & " из " & UBound(resArr) & ": ", resArr(i, 1)
    Next i
    Debug.Print "Время: " & Timer - t & " сек."
End Sub

Поиск с использованием ArraySearchResults

Sub ПримерБыстрогоПоискаВМассиве()
    t = Timer
    ИскомоеЗначение$ = 560
    СтолбецДляПоиска& = 3
 
    ' загружаем массив с листа
    arr = [a1:d30000].Value
 
    ' формируем строку поиска
    ss$ = SearchString(arr, СтолбецДляПоиска&)
 
    ' укорачиваем массив Arr, оставляя лишь те строки,
    ' где в заданном столбце есть искомое значение
    resArr = ArraySearchResults(arr, ss$, ИскомоеЗначение$)
 
    ' проверяем возвращеное функцией значение на наличие результатов поиска
    If Not IsArray(resArr) Then Debug.Print "Такие строки в массиве не найдены": Exit Sub
 
    ' выводим из отфильтрованных строк значения первого столбца
    For i = LBound(resArr) To UBound(resArr)
        Debug.Print "Результат - строка " & i & " из " & UBound(resArr) & ": ", resArr(i, 1)
    Next i
    Debug.Print "Время: " & Timer - t & " сек."
End Sub

Код функции ArraySearchResults:

Function ArraySearchResults(ByRef arr, ByRef searchStr As String, ByVal txt As String, _
                            Optional ByVal Sep As String = "%$%") As Variant
    ' функция получает в качестве параметров массив Arr,
    ' и заранее сформированную строку SearchString из значений ячеек нужного столбца массива
    ' По этой строке SearchString функция ищет строки массива, в которые встречается значение txt,
    ' и возвращает усечённый массив, содержащий только подходящие строки
    ' Поиск ведётся по ТОЧНОМУ совпадению значений

    ro& = 0: spl = Split(searchStr, Sep & txt & Sep)
    If UBound(spl) = 0 Then Exit Function    ' нет в массиве нужных строк
    ' перебираем результаты поиска, вычисляя номера строк в исходном массиве
    For i = LBound(spl) To UBound(spl) - 1
        txt = spl(i): ro& = ro& + 1 + (Len(spl(i)) - Len(Replace(spl(i), Sep, ""))) / Len(Sep)  2
        spl(i) = ro&
    Next i
    ' подготавливаем массив для результатов:
    ' по ширине - как исходный, по высоте - содержащий столько строк, сколько найдено совпадений
    ReDim resArr(1 To UBound(spl), LBound(arr, 2) To UBound(arr, 2))
    ' заполняем новый массив
    For i = LBound(spl) To UBound(spl) - 1
        For j = LBound(arr, 2) To UBound(arr, 2)
            resArr(i + 1, j) = arr(spl(i), j)
        Next j
    Next i
    ArraySearchResults = resArr
End Function
 
Function SearchString(ByRef arr, ByVal ArrayColumn As Long, _
                      Optional ByVal Sep As String = "%$%") As String
    ' Объединяет все значения из столбца ArrayColumn массива Arr в одну текстовую строку,
    ' в качестве разделителя элементов используя строку Sep
    ' Для ускорения конкатенации длинных строк используются
    ' промежуточные переменные buffer$ и buffer2$
    buffer$ = "": buffer2$ = "": Sep2$ = Sep$ & Sep$: Const BufferLen& = 6000
    On Error Resume Next: Err.Clear: SearchString = Sep2$
    If ArrayColumn > UBound(arr, 2) Or ArrayColumn < LBound(arr, 2) Then Exit Function
    For i = LBound(arr) To UBound(arr)
        buffer$ = buffer$ & Trim$(arr(i, ArrayColumn)) & Sep2$
        If Len(buffer$) > BufferLen& Then
            buffer2$ = buffer2$ & buffer$: buffer$ = ""
            If Len(buffer2$) > BufferLen& * 20 Then _
               SearchString = SearchString & buffer2$: buffer2$ = ""
        End If
    Next i
    SearchString = SearchString & buffer2$ & buffer$
End Function

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

Like this post? Please share to your friends:
  • Поиск по двум строкам excel
  • Поиск по значению колонки в excel
  • Поиск по двум словам в word
  • Поиск по датам excel
  • Поиск по горизонтали excel