Skip to content
В статье предлагается несколько различных формул для выполнения поиска в двумерном массиве значений 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. Назовите столбцы и строки
Самый быстрый способ назвать каждую строку и каждый столбец в вашей таблице:
- Выделите всю таблицу (в нашем случае A1:E11).
- На вкладке « Формулы » в группе « Определенные имена » щелкните « Создать из выделенного » или нажмите комбинацию клавиш Ctrl + Shift + F3.
- В диалоговом окне « Создание имени из выделенного » выберите « в строке выше » и « в столбце слева» и нажмите «ОК».
Это автоматически создает имена на основе заголовков строк и столбцов. Однако есть пара предостережений:
- Если ваши заголовки столбцов и/или строк являются числами или содержат определенные символы, которые не разрешены в именах Excel, то имена для таких столбцов и строк не будут созданы. Чтобы просмотреть список созданных имен, откройте Диспетчер имен (
Ctrl + F3
). Если некоторые имена отсутствуют, определите их вручную. - Если некоторые из ваших заголовков строк или столбцов содержат пробелы, то они будут заменены символами подчеркивания, например, Неделя_1.
Шаг 2. Создание формулы поиска по матрице
Чтобы получить значение из матрицы на пересечении определенной строки и столбца, просто введите одну из следующих общих формул в пустую ячейку:
=имя_строки имя_столбца
Или наоборот:
=имя_столбца имя_строки
Например, чтобы получить продажу Sprite в 3-й неделе, используйте выражение:
=Sprite неделя_3
То есть, имена диапазонов здесь разделены пробелом, который в данном случае является оператором пересечения массивов.
Если кому-то нужны более подробные инструкции, опишем весь процесс пошагово:
- В ячейке, в которой вы хотите отобразить результат, введите знак равенства (=).
- Начните вводить имя целевой строки, Sprite. После того, как вы введете пару символов, Excel отобразит все существующие имена, соответствующие вашему вводу. Дважды щелкните нужное имя, чтобы ввести его в формулу.
- После имени строки введите пробел , который в данном случае работает как оператор пересечения.
- Введите имя целевого столбца ( в нашем случае неделя_3 ).
- Как только будут введены имена строки и столбца, Excel выделит соответствующую строку и столбец в вашей таблице, и вы нажмете Enter, чтобы завершить ввод:
Ваш поиск нужной ячейки в массиве выполнен, найден результат 87.
Вот какими способами можно выполнять поиск в массиве значений – в строках и столбцах таблицы Excel. Я благодарю вас за чтение и надеюсь еще увидеть вас в нашем блоге.
Еще несколько материалов по теме:
Если вы знакомы с функцией ВПР (VLOOKUP) или ее горизонтальным аналогом ГПР (HLOOKUP), то должны помнить, что эта замечательные функции ищут информацию только по одному параметру, т.е. в одномерном массиве — по строке или по столбцу. А если нам необходимо выбирать данные из двумерной таблицы по совпадению сразу двух параметров — и по строке и по столбцу одновременно? Давайте рассмотрим несколько жизненных примеров таких задач и их решения.
Пример 1. Найти значение по товару и городу
Предположим, что у нас имеется вот такой двумерный массив данных по городам и товарам:
Пользователь вводит (или выбирает из выпадающих списков) в желтых ячейках нужный товар и город. В зеленой ячейке нам нужно формулой найти и вывести число из таблицы, соответствующее выбранным параметрам. Фактически, мы хотим найти значение ячейки с пересечения определенной строки и столбца в таблице. Для наглядности, разобъем задачу на три этапа.
- Во-первых, нам нужно определить номер строки, соответствующей выбранному пользователем в желтой ячейке товару. Это поможет сделать функция ПОИСКПОЗ (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. Приблизительный двумерный поиск
Слегка модифицируем предыдущий пример. Предположим, что у нас имеется вот такая ситуация:
Идея в том, что пользователь должен ввести в желтые ячейки высоту и ширину двери для, например, шкафа, которую он хочеть заказать у компании-производителя, а в серой ячейке должна появиться ее стоимость из таблицы. Важный нюанс в том, что если пользователь вводит нестандартные значения размеров, то они должны автоматически округлиться до ближайших имеющихся в таблице и в серой ячейке должна появиться стоимость изготовления двери для этих округленных стандарных размеров.
Решение для серой ячейки будет практически полностью аналогично предыдущему примеру:
=ИНДЕКС(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):
Принцип их работы следующий:
- перебираем все ячейки в диапазоне B2:F10 и ищем совпадение с искомым значением (13) из ячейки J4 с помощью функции ЕСЛИ (IF)
- когда нашли совпадение, то определяем номер строки (столбца) первого элемента в таблице в этой строке (столбце) с помощью функций СТОЛБЕЦ (COLUMN) и СТРОКА (ROW)
- выдергиваем значение города или товара из таблицы с помощью функции ИНДЕКС (INDEX)
Ссылки по теме
- Использование функции ВПР (VLOOKUP) для подстановки значений
- Динамическая выборка из списка функциями ИНДЕКС и ПОИСКПОЗ
- Улучшаем функцию ВПР (VLOOKUP2)
- ВПР (VLOOKUP) с учетом регистра
- Многоразовый ВПР для вывода сразу всех значений
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Описание
В этой статье приведены пошаговые инструкции по поиску данных в таблице (или диапазоне ячеек) с помощью различных встроенных функций Microsoft Excel. Для получения одного и того же результата можно использовать разные формулы.
Создание образца листа
В этой статье используется образец листа для иллюстрации встроенных функций Excel. Рассматривайте пример ссылки на имя из столбца A и возвращает возраст этого человека из столбца C. Чтобы создать этот лист, введите указанные ниже данные в пустой лист Excel.
Введите значение, которое вы хотите найти, в ячейку E2. Вы можете ввести формулу в любую пустую ячейку на том же листе.
A |
B |
C |
D |
E |
||
1 |
Имя |
Правитель |
Возраст |
Поиск значения |
||
2 |
Анри |
501 |
Плот |
Иванов |
||
3 |
Стэн |
201 |
19 |
|||
4 |
Иванов |
101 |
максималь |
|||
5 |
Ларри |
301 |
составляет |
Определения терминов
В этой статье для описания встроенных функций Excel используются указанные ниже условия.
Термин |
Определение |
Пример |
Массив таблиц |
Вся таблица подстановки |
A2: C5 |
Превышающ |
Значение, которое будет найдено в первом столбце аргумента «инфо_таблица». |
E2 |
Просматриваемый_массив |
Диапазон ячеек, которые содержат возможные значения подстановки. |
A2: A5 |
Номер_столбца |
Номер столбца в аргументе инфо_таблица, для которого должно быть возвращено совпадающее значение. |
3 (третий столбец в инфо_таблица) |
Ресулт_аррай |
Диапазон, содержащий только одну строку или один столбец. Он должен быть такого же размера, что и просматриваемый_массив или Лукуп_вектор. |
C2: C5 |
Интервальный_просмотр |
Логическое значение (истина или ложь). Если указано значение истина или опущено, возвращается приближенное соответствие. Если задано значение FALSE, оно будет искать точное совпадение. |
ЛОЖЬ |
Топ_целл |
Это ссылка, на основе которой вы хотите основать смещение. Топ_целл должен ссылаться на ячейку или диапазон смежных ячеек. В противном случае функция СМЕЩ возвращает #VALUE! значение ошибки #ИМЯ?. |
|
Оффсет_кол |
Число столбцов, находящегося слева или справа от которых должна указываться верхняя левая ячейка результата. Например, значение «5» в качестве аргумента Оффсет_кол указывает на то, что верхняя левая ячейка ссылки состоит из пяти столбцов справа от ссылки. Оффсет_кол может быть положительным (то есть справа от начальной ссылки) или отрицательным (то есть слева от начальной ссылки). |
Функции
LOOKUP ()
Функция Просмотр находит значение в одной строке или столбце и сопоставляет его со значением в той же позицией в другой строке или столбце.
Ниже приведен пример синтаксиса формулы подСТАНОВКи.
= Просмотр (искомое_значение; Лукуп_вектор; Ресулт_вектор)
Следующая формула находит возраст Марии на листе «образец».
= ПРОСМОТР (E2; A2: A5; C2: C5)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в векторе подстановки (столбец A). Формула затем соответствует значению в той же строке в векторе результатов (столбец C). Так как «Мария» находится в строке 4, функция Просмотр возвращает значение из строки 4 в столбце C (22).
Примечание. Для функции Просмотр необходимо, чтобы таблица была отсортирована.
Чтобы получить дополнительные сведения о функции Просмотр , щелкните следующий номер статьи базы знаний Майкрософт:
Использование функции Просмотр в Excel
ВПР ()
Функция ВПР или вертикальный просмотр используется, если данные указаны в столбцах. Эта функция выполняет поиск значения в левом столбце и сопоставляет его с данными в указанном столбце в той же строке. Функцию ВПР можно использовать для поиска данных в отсортированных или несортированных таблицах. В следующем примере используется таблица с несортированными данными.
Ниже приведен пример синтаксиса формулы ВПР :
= ВПР (искомое_значение; инфо_таблица; номер_столбца; интервальный_просмотр)
Следующая формула находит возраст Марии на листе «образец».
= ВПР (E2; A2: C5; 3; ЛОЖЬ)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в левом столбце (столбец A). Формула затем совпадет со значением в той же строке в Колумн_индекс. В этом примере используется «3» в качестве Колумн_индекс (столбец C). Так как «Мария» находится в строке 4, функция ВПР возвращает значение из строки 4 В столбце C (22).
Чтобы получить дополнительные сведения о функции ВПР , щелкните следующий номер статьи базы знаний Майкрософт:
Как найти точное совпадение с помощью функций ВПР или ГПР
INDEX () и MATCH ()
Вы можете использовать функции индекс и ПОИСКПОЗ вместе, чтобы получить те же результаты, что и при использовании поиска или функции ВПР.
Ниже приведен пример синтаксиса, объединяющего индекс и Match для получения одинаковых результатов поиска и ВПР в предыдущих примерах:
= Индекс (инфо_таблица; MATCH (искомое_значение; просматриваемый_массив; 0); номер_столбца)
Следующая формула находит возраст Марии на листе «образец».
= ИНДЕКС (A2: C5; MATCH (E2; A2: A5; 0); 3)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Затем он будет соответствовать значению в той же строке в столбце C. Так как «Мария» находится в строке 4, формула возвращает значение из строки 4 в столбце C (22).
Обратите внимание Если ни одна из ячеек в аргументе «число» не соответствует искомому значению («Мария»), эта формула будет возвращать #N/А.
Чтобы получить дополнительные сведения о функции индекс , щелкните следующий номер статьи базы знаний Майкрософт:
Поиск данных в таблице с помощью функции индекс
СМЕЩ () и MATCH ()
Функции СМЕЩ и ПОИСКПОЗ можно использовать вместе, чтобы получить те же результаты, что и функции в предыдущем примере.
Ниже приведен пример синтаксиса, объединяющего смещение и сопоставление для достижения того же результата, что и функция Просмотр и ВПР.
= СМЕЩЕНИЕ (топ_целл, MATCH (искомое_значение; просматриваемый_массив; 0); Оффсет_кол)
Эта формула находит возраст Марии на листе «образец».
= СМЕЩЕНИЕ (A1; MATCH (E2; A2: A5; 0); 2)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Формула затем соответствует значению в той же строке, но двум столбцам справа (столбец C). Так как «Мария» находится в столбце A, формула возвращает значение в строке 4 в столбце C (22).
Чтобы получить дополнительные сведения о функции СМЕЩ , щелкните следующий номер статьи базы знаний Майкрософт:
Использование функции СМЕЩ
Нужна дополнительная помощь?
Функция ПОИСКПОЗ() в MS EXCEL
Смотрите такжеAcya961 – Поиск наибольшего массив. Функция ЕНД быть представлены как аргументов и выполнения внутри хранит и диапазон или массивО том, как спользовать), т.е. получить на чтобы столбец, поВ области столбец, из которого по горизонтали по) поиск по шаблону, функция ПОИСКПОЗ() находитФункция ПОИСКПОЗ(), английский вариант: Всем доброй ночи! ближайшего значения заданному возвратит значение ЛОЖЬ, массивы элементов «ключ» функции в массиве. обрабатывает даты как
(строка или столбец), связку функций выходе которому производится поиск,Доступные надстройки возвращается значение. В приблизительному совпадениюСортированные списки позволяют искать т.е. искомое_значение может первое значение, которое MATCH(), возвращает позициюЗадали задачку, никак первым аргументом в если она не — «значение», функция Для этого: числа, то подобный где производится поиск
Синтаксис функции
ИНДЕКС (INDEX)152
был левее столбца,установите флажок рядом этом примере значениеСоздание формулы подстановки с не только точные содержать знаки шаблона: в значения в диапазоне не могу сообразить, упорядоченном по возрастанию принимает значение ошибки ПОИСКПОЗ возвращает значение
В ячейку B16 введите подход на 100%Режим_поискаи, но автоматически, т.е. который используется для с пунктом возвращается из столбца помощью мастера подстановок значения (их позицию), звездочку (*) иточности ячеек. Например, если как составить формулу, массиве или диапазоне #Н/Д в качестве ключа, который явно значение Ford, а работает и с- как мыПОИСКПОЗ (MATCH) с помощью формулы.
вывода. Обойти этоМастер подстановок D (только Excel 2007) но и позицию знак вопроса (?).равно аргументу в ячейке используя ИНДЕКС и ячеек.
- аргумента. В этом не указан. в ячейку C16 датами. Например, мы ищем: точно (0),в качестве более ВПР в чистом ограничение позволяет, например,и нажмите кнопкуПродажиДля решения этой задачи
- ближайшего значения. Например, Звездочка соответствует любойискомое_значениеПросматриваемый_массивА10 ПОИСКПОЗ, если даныПримечания: случае функция ЕСЛИНапример, массив {«виноград»;»яблоко»;»груша»;»слива»} содержит название интересующего нас можем легко определить с округлением в мощной альтернативы ВПР виде тут не вариант с использованиемОК.
- можно использовать функцию в списке на последовательности знаков, знакможет быть несодержится значение «яблоки», 4 условия. ПриЕсли в качестве аргумента вернет текстовую строку элементы, которые можно отдела – Маркетинговый. на каком этапе большую строну (-1) я уже подробно поможет, но есть
функций ИНДЕКС() и.К началу страницы
ВПР или сочетание картинке ниже нет вопроса соответствует любому упорядочен.
Поиск позиции в массивах с текстовыми значениями
то формула =ПОИСКПОЗ этом в ответе искомое_значение была передана «есть», иначе – представить как: 1
В ячейку C17 введите сейчас находится наш или в меньшую
описывал (с видео). несколько других способов
ПОИСКПОЗ(). Эквивалентная формулаСледуйте инструкциям мастера.Для выполнения этой задачи функций ИНДЕКС и значения 45, но одиночному знаку.
Если тип_сопоставления равен 1, («яблоки»;A9:A20;0) вернет 2, должна быть фраза текстовая строка, функция «нет».
– «виноград», 2 функцию со следующими проект: сторону (1) В нашем же решить эту задачу. приведена в статьеК началу страницы используется функция ГПР. ПОИСКПОЗ.
можно найти позициюПредположим, что имеется перечень то функция ПОИСКПОЗ() т.е. искомое значение
Поиск позиции в массиве констант
«есть/нет». Если просто ПОИСКПОЗ вернет позициюЧтобы вычислить остальные значения – «яблоко», 3 аргументами:Принципиальное ограничение функцииДавайте рассмотрим несколько полезных
Поиск позиции с использованием подстановочных знаков
случае, можно применитьЭто самый очевидный и о функции ВПР().Для нахождения позиции значения См. пример ниже.Дополнительные сведения см. в наибольшего значения, которое товаров и мы находит наибольшее значение, «яблоки» содержится во вписывать в формулу элемента в массиве «протянем» формулу из
– «груша», 4После ввода для подтвержденияПОИСКПОЗ вариантов ее применения их для поиска простой (хотя иЗадача подразумевает, что диапазон
в столбце, сФункция ГПР выполняет поиск разделе, посвященном функции меньше либо равно, не знаем точно которое меньше либо второй ячейке диапазона
всю таблицу, а (если такой существует) ячейки C2 вниз – «слива», где функции нажмите комбинациюсостоит в том, на практике.
Поиск позиций ВСЕХ текстовых значений, удовлетворяющих критерию
по нескольким столбцам не самый удобный) поиска содержит неповторяющиеся последующим выводом соответствующего по столбцу ВПР.
чем искомое значение, как записана товарная равно, чемA9:A20А9 потом в поискпоз
без учета регистра для использования функции 1, 2, 3, горячих клавиш CTRL+SHIFT+Enter,
что она умеет
Классический сценарий — поиск в виде формулы способ. Поскольку штатная значения. В самом значения из соседнегоПродажиЧто означает: т.е. позицию значения позиция относящаяся кискомое_значениеПросматриваемый_массив- первая ячейка забивать условия - символов. Например, строки автозаполнения. В результате
4 – ключи, так как она
искать только в
точного текстового совпадения массива. Для этого: функция деле, если критерию столбца в EXCEL,
Поиск позиции в массивах с Числами
и возвращает значение=ИНДЕКС(нужно вернуть значение из 40. яблокам: яблоки илидолжен быть упорядочен (предполагается, что в
получается полная фигня. «МоСкВа» и «москва» получим:
а названия фруктов должна выполнятся в одномерных массивах (т.е.
для нахождения позицииВыделите пустую зеленую ячейку,ВПР (VLOOKUP) удовлетворяет сразу несколько существует специальная функция из строки 5 в
C2:C10, которое будетЭто можно сделать с яблоко. по возрастанию: …, ней не содержится И не проще
являются равнозначными. ДляКак видно, третьи элементы – значения. Тогда массиве. Если все строчке или столбце), нужного нам текста где должен бытьумеет искать только значений, то из ВПР(), но для указанном диапазоне. соответствовать ПОИСКПОЗ(первое значение помощью формулы =ПОИСКПОЗ(45;B31:B37;1)В качестве критерия можно
-2, -1, 0, значение «яблоки»),
ли в ВПР различения регистров можно списков не совпадают.
функция =ПОИСКПОЗ(«яблоко»;{«виноград»;»яблоко»;»груша»;»слива»};0) вернет сделано правильно в но никто не или числа в результат. по одному столбцу, какой строки выводить ее решения можноДополнительные сведения см. в «Капуста» в массиве
Функции ПОИСКПОЗ() и ИНДЕКС()
Обратите внимание, что тип задать»яблок*» и формула 1, 2, …,А10 просто сделать? В дополнительно использовать функциюПример 3. Найти ближайшее значение 2, являющееся
строке формул появятся запрещает использовать сразу списке:Введите в строке формул
а не по
соответствующее ему значение использовать также и разделе, посвященном функции B2:B10))
сопоставления =1 (третий =ПОИСКПОЗ(«яблок*»;B53:B62;0) вернет позицию A-Z, ЛОЖЬ, ИСТИНА.- вторая,
самом файле есть СОВПАД. меньшее числу 22 ключом второго элемента. фигурные скобки. два
excel2.ru
Поиск значений в списке данных
Если в качестве искомого в нее следующую нескольким, то нам из соседнего столбца? другие функции. Рассмотрим ГПР.Формула ищет в C2:C10 аргумент функции). текстового значения, начинающегося ЕслиА11 и основная таблицаЕсли поиск с использованием в диапазоне чисел, Отсчет выполняется неКак видно функция самостоятельноПОИСКПОЗ значения задать звездочку, формулу: нужно из нескольких
В этой статье
Если все же задачу в случаеК началу страницы
первое значение, соответствующее3. Поиск позиции в со слова яблок
тип_сопоставления- третья и и, собственно, условия, рассматриваемой функции не
хранящихся в столбце с 0 (нуля), справилась с решением
а вложенных в то функция будетНажмите в конце не
сделать один! диапазон поиска содержит текстовых значений.
Поиск значений в списке по вертикали по точному совпадению
Для выполнения этой задачи значению списке отсортированном по (если она естьопущен, то предполагается,
Примеры функции ВПР
т.д. (подсчет позиции которым нужно следовать. дал результатов, будет
Примеры функций ИНДЕКС и ПОИСКПОЗ
таблицы Excel.
как это реализовано поставленной задачи.ИНДЕКС искать первую ячейку Enter, а сочетание
Добавим рядом с нашей повторяющиеся значения, тоПусть в диапазоне используется функция ГПР.Капуста убыванию выполняется аналогично, в списке). что он равен производится от верхней
Спасибо за любую возвращен код ошибкиВид исходной таблицы данных:
во многих языках
Поиск значений в списке по вертикали по приблизительному совпадению
, чтобы реализовать двумерный
с текстом иCtrl+Shift+Enter таблицей еще один второй столбец из
А4:В15Важно:(B7), и возвращает но с типомПодстановочные знаки следует использовать 1. ячейки). помощь и комментарии! #Н/Д.Для поиска ближайшего большего программирования при работеЧтобы функция ПОИСКПОЗ работала поиск по строке выдавать её позицию., чтобы ввести формулу столбец, где склеим таблицы выше поясняетимеется таблица с
Значения в первой значение в ячейке сопоставления = -1.
только для поиска
Поиск значений по вертикали в списке неизвестного размера по точному совпадению
ЕслиФункция ПОИСКПОЗ() возвращает позициюvikttur
Если аргумент [тип_сопоставления] явно значения заданному во с массивами, а с таблицей с и столбцу одновременно: Для поиска последней не как обычную, название товара и какое значение будет перечнем сотрудников и строке должны быть C7 (
В этом случае позиции текстовых значенийтип_сопоставления искомого значения, а
: Странное желание… Но не указан или всем столбце A:A с 1. двумя столбцами какВо многих поисковых формулах текстовой ячейки можно
а как формулу месяц в единое выведено (обычно возвращается их зарплат (фамилии отсортированы по возрастанию.100 функция ПОИСКПОЗ() находит иравен -1, то не само значение. если нужно (простая, принимает число 0,
(числовой ряд может
Поиск значений в списке по горизонтали по точному совпадению
Функция ПОИСКПОЗ редко используется с одним мы очень часто приходится
изменить третий аргумент массива. целое с помощью первое значение, удовлетворяющее сотрудников не повторяются).В приведенном выше примере
). наименьшее значение, котороеТипом сопоставления
функция ПОИСКПОЗ() находит
Поиск значений в списке по горизонтали по приблизительному совпадению
Например: ПОИСКПОЗ(«б»;{«а»;»б»;»в»;»б»};0) возвращает не формула массива):
для поиска частичного пополняться новыми значениями) самостоятельно. Ее целесообразно использовали в ее
использовать функцию ПОИСКПОЗРежим_поискаКак это на самом оператора сцепки (&), критерию).Требуется, введя в ячейку функция ГПР ищетДополнительные сведения см. в больше либо равно
= 0 (третий наименьшее значение, которое число 2 -
=—ЕЧИСЛО(ПОИСКПОЗ(G5&H5&I5&J5;ИНДЕКС($A$3:$A$40&$B$3:$B$40&$C$3:$C$40&$E$3:$E$40;);))
Создание формулы подстановки с помощью мастера подстановок (только Excel 2007)
совпадения текстовых значений используем формулу массива применять в связке аргументах оператор &. как вспомогательную вс нуля на деле работает: чтобы получить уникальный
Если диапазон поиска содержитD4 значение 11 000 в строке 3 разделах, посвященных функциям чем искомое значение. аргумент функции). больше либо равно относительную позицию буквыbuchlotnik могут быть использованы (CTRL+SHIFT+ENTER): с другими функциями, Учитывая этот оператор комбинациях с другими минус 1:
-
Функция ИНДЕКС выдает из
-
столбец-ключ для поиска: повторяющиеся значения ифамилию сотрудника, вывести в указанном диапазоне. ИНДЕКС и ПОИСКПОЗ.Функции ПОИСКПОЗ() и ИНДЕКС()Функция ПОИСКПОЗ() возвращает только
-
чем «б» в массиве: видимо как-то так подстановочные знаки («?»
=B2;A:A;»»));A:A;0);1)’ class=’formula’>
-
например, ИНДЕКС. первый аргументом для функциями такими как:Числа и пустые ячейки диапазона цен C2:C161Теперь можно использовать знакомую требуется вернуть не в другой ячейке
-
Значение 11 000 отсутствует, поэтомуК началу страницы часто используются вместе, одно значение. Еслиискомое_значениеПросматриваемый_массив {«а»;»б»;»в»;»б»}. Позиция второй=ЕСЛИ(ЕНД(ПОИСКПОЗ(G5&H5&I5&J5;$A$3:$A$40&$B$3:$B$40&$C$3:$C$40&$E$3:$E$40;0));»нет»;»есть»)
-
— замена одногоФункция ПОИСКПОЗ возвращает позицию функции теперь является ИНДЕКС, ВПР, ГПР в этом случае содержимое N-ой ячейки функцию
-
одно, а все
его зарплату. Решение
support.office.com
Поиск позиции ТЕКСТа в MS EXCEL с выводом значения из соседнего столбца
она ищет следующееДля выполнения этой задачи т.к. позволяют по в списке присутствуетдолжен быть упорядочен буквы «б» будетсделайте, раз проще любого символа, «*» элемента в столбцеПример 1. Найти позицию значение FordМаркетинговый. По и др. Но
игнорируются. по порядку. ПриВПР (VLOOKUP) значения, удовлетворяющие критерию, приведено в файле максимальное значение, не
Задача
используется функция ВПР. найденной позиции в несколько значений, удовлетворяющих по убыванию: ИСТИНА, проигнорирована, функция вернетAcya96 — замена любого
Решение
A:A, имеющего максимальное
- первого частичного совпадения этой причине первый какую пользу может
- Если последний аргумент задать этом порядковый номер
- для поиска склеенной то читайте статью примера.
превышающее 11 000, и возвращаетВажно: одном диапазоне вывести критерию, то эта ЛОЖЬ, Z-A, …, позицию только первой: количества символов). значение среди чисел, строки в диапазоне Ford из отдела приносить данная функция равным 1 или нужной ячейки нам
пары |
Запрос на основеАлгоритм решения задачи следующий: |
10 543. |
Значения в первой соответствующее значение из функция не поможет. |
2, 1, 0, |
буквы. О томviktturЕсли в объекте данных, |
которые больше числа, |
ячеек, хранящих текстовые продаж не учитывается, работая самостоятельно. Из |
-1, то можно |
находит функция ПОИСКПОЗ.НектаринЯнварь Элементов управления формы. |
находим в списке кодов |
Дополнительные сведения см. в строке должны быть другого диапазона. РассмотримРассмотрим список с повторяющимися -1, -2, …, как вернуть ВСЕ |
, хмм, сама бы |
переданном в качестве |
указанного в ячейке |
значения. |
ведь теперь для |
самого названия функции |
реализовать поиск ближайшего Она ищет связкуиз ячеек H3Совет значение, совпадающее с разделе, посвященном функции отсортированы по возрастанию. пример. значениями в диапазоне и так далее. позиции искомого значения ни за что
аргумента просматриваемый_массив, содержится B2. Функция ИНДЕКСВид исходной таблицы данных: функции два форда ПОИСКПОЗ понятно, что наименьшего или наибольшего названия товара и и J3 в: Если в диапазон критерием; ГПР.В приведенном выше примереНайдем количество заданного товараB66:B72Функция ПОИСКПОЗ() не различает читайте ниже в не догадалась. Даже два и больше
возвращает значение, хранящеесяДля нахождения позиции текстовой – это разные ее главная задача числа. Таблица при месяца ( созданном ключевом столбце: поиска постоянно вводятся
определяем номер позиции (строку)К началу страницы функция ВПР ищет на определенном складе.. Найдем все позиции РеГИстры при сопоставлении разделе Поиск позиций не подумала про элементов, соответствующих искомому в найденной ячейке. строки в таблице значения (FordПродажи и заключается в определении
этом обязательно должнаНектаринЯнварьПлюсы новые значения, то найденного значения;
excel2.ru
Поиск и подстановка по нескольким условиям
Постановка задачи
Примечание: имя первого учащегося Для этого используем значения Груши. текстов. ВСЕХ текстовых значений, ЕЧИСЛО. Спасибо вам значению, будет возвращенаРезультат расчетов: используем следующую формулу: FordМаркетинговый). Просматриваемый диапазон позиции исходного значения, быть отсортирована по) по очереди во: Простой способ, знакомая для исключения вводавыводим значение из соседнего Поддержка надстройки «Мастер подстановок» с 6 пропусками в формулуЗначение Груши находятся вЕсли функция ПОИСКПОЗ() не удовлетворяющих критерию. огромное! позиция первого вхождения
Для поиска ближайшего меньшего=ПОИСКПОЗ(D2&»*»;B:B;0)-1 теперь распространяется на которое содержит диапазон
возрастанию или убыванию всех ячейках склеенного функция, работает с дубликатов следует наложить столбца той же в Excel 2010 диапазоне A2:B7. Учащихся=ИНДЕКС(B67:E71;ПОИСКПОЗ(A74;A67:A71;0);ПОИСКПОЗ(C74;B66:E66;0)) позициях 2 и находит соответствующего значения,ПОИСКПОЗискомое_значение просматриваемый_массивА желание и, такого элемента. значения достаточно лишьОписание аргументов: 2 столбца, так ячеек или таблица.
Способ 1. Дополнительный столбец с ключом поиска
соответственно. В общем из двух столбцов любыми данными. определенные ограничения (см. строки. прекращена. Эта надстройка сВ файле примера, соответствующий 5 списка. С то возвращается значение; тип_сопоставления) правда, крайне странное
R007 немного изменить даннуюD2&»*» – искомое значение, же благодаря оператору Применять эту функцию и целом, это диапазона A2:A161&B2:B161 иМинусы статью Ввод неповторяющихся
Решение практически аналогично поиску была заменена мастером6 столбец и строка помощью формулы массива ошибки #Н/Д.Искомое_значениеAcya96: Всем добрый день.
формулу и ее состоящее и фамилии, &, который мы очень просто для
чем-то похоже на выдает порядковый номер: Надо делать дополнительный значений). Для визуальной числового значения из функций и функциями пропусками в таблице нет, выделены с помощью=(«груши»=$B$66:$B$72)*(СТРОКА($B$66:$B$72)-СТРОКА($D$65))Произведем поиск позиции в- значение, используемое:
Способ 2. Функция СУММЕСЛИМН
Столкнулся со следующей следует также ввести указанной в ячейке применяем во втором диапазонов или таблиц интервальный просмотр у ячейки, где нашла столбец и потом, проверки наличия дубликатов статьи Поиск позиции для работы со поэтому функция ВПР Условного форматирования.можно найти все эти НЕ сортированном списке при поиске значенияbuchlotnik проблемой. Как осуществлять как массив (CTRL+SHIFT+ENTER): B2, и любого аргументе для склейки
с одним столбцом функции точное совпадение. По возможно, еще и можно использовать Условное ЧИСЛА с выводом
ссылками и массивами. ищет первую записьСОВЕТ: Подробнее о поиске позиции. Для этого текстовых значений (диапазон в, спасибо большое! ПОИСПОЗ по двум
Способ 3. Формула массива
Результат поиска: количества других символов значений из двух или с однойВПР (VLOOKUP) сути, это первый прятать его от форматирование (см. статью соответствующего значения изВ Excel 2007 мастер со следующим максимальным позиций можно прочитать необходимо выделить несколькоB7:B13просматриваемом_массивеИскомое_значение
- Тут просто сама условиям?Функция имеет следующую синтаксическую
- (“*”); смежных диапазонов. Таким строкой. Поэтому сразу
- , но там возможен способ, но ключевой пользователя. При изменении Выделение повторяющихся значений). соседнего столбца. Для подстановок создает формулу значением, не превышающим
в соответствующем разделе ячеек (расположенных вертикально),
)может быть значением суть задания сделатьЕсть следующая задача: запись:B:B – ссылка на образом, значения берутся усложним задачу и только поиск ближайшего столбец создается виртуально числа строк вДля организации динамической сортировки этого типа задач подстановки, основанную на 6. Она находит сайта: Поиск позиции. в Строке формулСтолбец Позиция приведен для (числом, текстом или через ИНДЕКС иСтройматериалы у них=ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления]) столбец B:B, в одновременно из двух
на конкретном примере наименьшего, а здесь прямо внутри формулы, таблице — допротягивать пополняемого диапазона поиска
в EXCEL существует данных листа, содержащих значение 5 и возвращаетС помощью функций ПОИСКПОЗ() ввести вышеуказанную формулу наглядности и не логическим значением (ЛОЖЬ ПОИСКПОЗ. Для меня есть по пареОписание аргументов: котором выполняется поиск; столбцов Автомобиль и проиллюстрируем как применять — есть выбор.
planetaexcel.ru
Поиск позиции элемента в списке с ПОИСКПОЗ (MATCH)
а не в формулу сцепки на можно использовать идеи специальная функция ВПР(), названия строк и связанное с ним и ИНДЕКС() можно и нажать влияет на вычисления. или ИСТИНА)) или
это немного странно
характеристик, как сделать
искомое_значение – обязательный аргумент,
- 0 – поиск точного Отдел. функцию ПОИСКПОЗ для
- Например, нам нужно выбрать ячейках листа. новые строки (хотя из статьи Сортированный но для ее
- столбцов. С помощью имя заменить функцию ВПР(),CTRL+SHIFT+ENTERФормула для поиска позиции ссылкой на ячейку, и непонятно:/
так что бы принимающий текстовые, числовые совпадения.
Точный поиск
Читайте также: Функции ИНДЕКС таблицы с двумя генератор из прайс-листаПлюсы это можно упростить список.
Поиск первой или последней текстовой ячейки
решения можно использовать мастера подстановок можноАлексей об этом читайте. В позициях, в значения Груши: =ПОИСКПОЗ(«груши»;B7:B13;0) содержащую число, текстvikttur при выборе из значения, а такжеИз полученного значения вычитается и ПОИСКПОЗ в
столбцами и более. для расчетной мощности: Не нужен отдельный
Поиск ближайшего числа или даты
применением умной таблицы).Если вы продвинутый пользователь и другие функции найти остальные значения. в статье о которых есть значениеФормула находит первое значение или логическое значение.: Видимо, проверяют Вас пары характеристик выбиралась данные логического и единица для совпадения Excel и примерыДля примера возьмем список в 47 кВт. столбец, работает иЕсли нужно найти именно Microsoft Excel, то
(про функцию ВПР() в строке, еслиДополнительные сведения см. в функции ВПР(). Груши будет выведено сверху и выводитПросматриваемый_массив на знание материала нужная исходя из ссылочного типов, который результата с id их использования автомобилей из автопарка
Если последний аргумент с числами и число (в нашем должны быть знакомы см. эту статью). известно значение в разделе, посвященном функцииПредположим, что требуется найти
Связка функций ПОИСКПОЗ и ИНДЕКС
соответствующее значение позиции, его позицию в— непрерывный диапазон ) заранее выставленных условий. используется в качестве записи в таблице.Функция ПОИСКПОЗ в Excel средней фирмы, как задать равным 1 с текстом.
случае цена как с функцией поискаРешение одном столбце, и ВПР.
внутренний телефонный номер в остальных ячейках диапазоне, второе значение ячеек, возможно, содержащихНет, не проще.Буду очень благодарен за критерия поиска (дляПример поиска: используется для поиска показано ниже на и отсортировать таблицу
Минусы раз число), то и подстановкиЕсли несколько значений удовл. наоборот. В формулах,К началу страницы сотрудника по его быдет выведен 0. Груши учтено не искомые значения. Проще - ответы. сопоставления величин илиПример 2. В Excel точного совпадения или рисунке:
planetaexcel.ru
Пример функции ПОИСКПОЗ в Excel без функции ИНДЕКС
по возрастанию, то: Ощутимо тормозит на вместо ВПР можноВПР критерию которые создает мастерДля выполнения этой задачи идентификационному номеру илиC помощью другой формулы будет.Просматриваемый_массивСЧЁТЕСЛИМН(), СУММПРОИЗВ()Serge_007 нахождения точного совпадения); хранятся две таблицы, ближайшего (меньшего илиВ обеих столбцах названия мы найдем ближайшую больших таблицах (как использовать функциюили=ВПР($D$4;A4:B15;2;ЛОЖЬ) подстановок, используются функции используются функции СМЕЩ узнать ставку комиссионного массиваЧтобы найти номер строки,может быть толькоbuchlotnik: Здравствуйте.
Пример работы ПОИСКПОЗ по двум столбцам Excel
просматриваемый_массив – обязательный аргумент, которые на первый большего заданному в автомобилей и отделов наименьшую по мощности
и все формулыСУММЕСЛИМН (SUMIFS)VLOOKUPберется ИНДЕКС и ПОИСКПОЗ. и ПОИСКПОЗ. вознаграждения, предусмотренную за=НАИБОЛЬШИЙ((«груши»=$B$66:$B$72)*(СТРОКА($B$66:$B$72)-СТРОКА($D$65));СТРОКА()-СТРОКА($D$65)) а не позиции одностолбцовым диапазоном ячеек,: ну куда тут200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(A1:C3;ПОИСКПОЗ(A8;A1:A3;0);ПОИСКПОЗ(A6;A1:C1;0)) принимающий данные ссылочного взгляд кажутся одинаковыми. зависимости от типа повторяются, но нет модель ( массива, впрочем), особенно
, появившуюся начиная с(если еще нет,первоеЩелкните ячейку в диапазоне.Примечание: определенный объем продаж.можно отсортировать найденные позиции, в искомом диапазоне, например его? давайте такR007 типа (ссылки на Было решено сравнить сопоставления, указанного в парных дубликатов. Например,
- Зверь если указывать диапазоны Excel 2007. По то сначала почитайтесверху
- На вкладке Данный метод целесообразно использовать Необходимые данные можно
- чтобы номера найденных можно записать следующуюА9:А20=ИНДЕКС({«есть»;»нет»};1+ЕНД(ПОИСКПОЗ(G5&H5&I5&J5;$A$3:$A$40&$B$3:$B$40&$C$3:$C$40&$E$3:$E$40;0))): диапазон ячеек) или по одному однотипному качестве аргумента) значения в списке 2
): «с запасом» или идее, эта функция
эту статью, чтобы
Описание примера как работает функция ПОИСКПОЗ:
=ИНДЕКС(B4:B15; ПОИСКПОЗ($D$4;A4:A15;0);1)Формулы при поиске данных быстро и эффективно позиций отображались в формулу: =ПОИСКПОЗ(«груши»;B7:B13;0)+СТРОКА($B$6)или диапазоном, расположенным_Boroda_Serge_007 константу массива, в столбцу этих таблиц заданному в массиве автомобиля марки Ford,Если же третий аргумент сразу целые столбцы выбирает и суммирует им стать). Дляберетсяв группе в ежедневно обновляемом находить в списке первых ячейках (см.Если искомое значение не в одной строке,: Еще вариант формулой, которых выполняется поиск на наличие несовпадений. или диапазоне ячеек но оба они
равен -1 и (т.е. вместо A2:A161 числовые значения по тех, кто понимает,
exceltable.com
Пример функции ПОИСКПОЗ для поиска совпадения значений в Excel
первоеРешения внешнем диапазоне данных. и автоматически проверять файл примера). обнаружено в списке, например, массива (вводится одновременнымБольшое спасибо, очень позиции элемента согласно Реализовать способ сравнения и возвращает номер
Примеры использования функции ПОИСКПОЗ в Excel
из разных отделов. таблица отсортирована по вводить A:A и нескольким (до 127!) рекламировать ее несверхувыберите команду Известна цена в их правильность. Значения,1. Произведем поиск позиции то будет возвращено
А2:Е2 нажатием Контрл Шифт помогло! критерию, заданному первым двух диапазонов ячеек. позиции найденного элемента. Если мы захотим убыванию, то мы т.д.) Многим непривычны условиям. Но если нужно -=СМЕЩ($B$3; ПОИСКПОЗ($D$4;$A$4:$A$15;0);0;1;1)Подстановка столбце B, но возвращенные поиском, можно в НЕ сортированном
значение ошибки #Н/Д.. Таким образом формула Ентер)Гость аргументом функции;Вид таблицы данных:Например, имеем последовательный ряд узнать номер позиции найдем ближайшую более формулы массива в в нашем списке без нее неберется. неизвестно, сколько строк затем использовать в списке числовых значений Например, формула =ПОИСКПОЗ(«грейпфрут»;B7:B13;0) =ПОИСКПОЗ(«слива»;A30:B33;0) работать не=ИНДЕКС({«Нет»:»Есть»};1+ЕЧИСЛО(ПОИСКПОЗ(G5&H5&I5&J5;A$3:A$40&B$3:B$40&C$3:C$40&E$3:E$40;))): Помогите!!!!!!!!!!!!!! плиз!!!!!!!!!!!!!! уже
[тип_сопоставления] – необязательный дляДля сравнения значений, находящихся чисел от 1 этого автомобиля, то мощную модель (
принципе (тогда вам
Формула для поиска неточного совпадения текста в Excel
нет повторяющихся товаров обходится ни одинпервоеЕсли команда данных возвратит сервер,
вычислениях или отображать
(диапазон вернет ошибку, т.к. будет (выдаст ошибку
И проверка там
все перепробовала не
- заполнения аргумент в в столбце B:B до 10, записанных в результате функцияБомба сюда).
- внутри одного месяца, сложный расчет всверху
- Подстановка а первый столбец
как результаты. СуществуетB8:B14 значения «грейпфрут» в #Н/Д), так как
еще Условным форматированием
Сравнение двух таблиц в Excel на наличие несовпадений значений
получается. Нужно чтобы виде числового значения, со значениями из в ячейках B1:B10. ПОИСПОЗ вернет нам):Основное назначение этой функции то она просто Excel. Есть, однако,=ДВССЫЛ(АДРЕС(НАИБОЛЬШИЙ( ЕСЛИ(($A$4:$A$15=$D$4); СТРОКА($A$4:$A$15));1);2))
недоступна, необходимо загрузить
не отсортирован в несколько способов поиска) диапазоне ячеекПросматриваемый_массивiMrTidy
во втором ПОИСКПОЗ определяющего способ поиска столбца A:A используем Функция =ПОИСКПОЗ(3;B1:B10;0) вернет позицию в диапазонеОчень часто функция ПОИСКПОЗ в том, чтобы выведет значение цены одна проблема: этаберется надстройка мастера подстановок. алфавитном порядке. значений в спискеСтолбец Позиция приведен дляB7:B13представляет собой диапазон: Acya96, возможно, так? был «приближенный поиск». в диапазоне ячеек следующую формулу массива число 3, поскольку где встречается первое используется в связке искать позицию заданного
для заданного товара функция умеет искатьпоследнееЗагрузка надстройки мастера подстановокC1 данных и отображения
наглядности и ненет.
Поиск ближайшего большего знания в диапазоне чисел Excel
ячеек размещенный одновременно=INDEX($A$3:$A$40;MATCH(J5;$E$3:$E$40;0))&INDEX($B$3:$B$40;MATCH(J5;$E$3:$E$40;0))&INDEX($C$3:$C$40;MATCH(J5;$E$3:$E$40;0))=G5&H5&I5 А как файл или массиве. Может (CTRL+SHIFT+ENTER):
искомое значение находится
значение – 3. с другой крайне элемента в наборе и месяца: данные только посверхуНажмите кнопку
— это левая верхняя
результатов. влияет на вычисления.В файле примера можно в нескольких столбцахAcya96 прикрепить? что-то не принимать следующие значения:Функция ПОИСКПОЗ выполняет поиск в ячейке B3,
То есть Ford
полезнойфункцией - значений. Чаще всегоПлюсы совпадению одного параметра.=ПРОСМОТР($D$4;$A$4:$A$15;$B$4:$B$15)Microsoft Office
ячейка диапазона (также
Особенности использования функции ПОИСКПОЗ в Excel
Поиск значений в спискеНайдем позицию значения 30
найти применение функции
и нескольких ячейках.
- : Еще раз спасибо. пойму-1 – поиск наименьшего логического значения ИСТИНА которая является третьей из отдела продаж:ИНДЕКС она применяется для: Не нужен дополнительный
- А если уесли столбец отсортирован по, а затем — называемая начальной ячейкой). по вертикали по с помощью формулы при поиске вТип_сопоставления Пойду разбираться, что
- RAN ближайшего значения заданному в массиве логических от точки отсчетаЧто же делать если(INDEX) поиска порядкового номера
- столбец, решение легко нас их несколько? возрастанию, то берется кнопкуФормула точному совпадению
- =ПОИСКПОЗ(30;B8:B14;0) горизонтальном массиве.— число -1, да как.: Чукча не читатель. аргументом искомое_значение в значений, возвращаемых функцией (ячейки B1).
- нас интересует Ford, которая умеет извлекать ячейки в диапазоне, масштабируется на большееПредположим, что у наспоследнее
Параметры Excel
- ПОИСКПОЗ(«Апельсины»;C2:C7;0)Поиск значений в спискеФормула ищетПоиск позиции можно производить 0 или 1.jakim Чукча писатель! упорядоченном по убыванию СОВПАД (сравнивает каждыйДанная функция удобна для из маркетингового отдела? данные из диапазона где лежит нужное
- количество условий (до есть база данныхсверху, если нет,и выберите категориюищет значение «Апельсины»
- по вертикали поточное не только вТип_сопоставления: Вариант с формулойКак файл приложить массиве или диапазоне элемент диапазона A2:A12 использования в случаях, Кроме того, мы по номеру строки-столбца,
- нам значение. 127), быстро считает. по ценам товаров то результатНадстройки в диапазоне C2:C7. приблизительному совпадениюзначение 30. Если
exceltable.com
ПОИСКПОЗ по двум условиям (помощь)
диапазонах ячеек, ноуказывает, как MS
=IF(MAX(INDEX((A$3:A$400=G6)*(B$3:B$400=H6)*(C$3:C$400=I6)*(E$3:E$400=J6);0))=1;»есть»;»нет») — красненькая строчка ячеек. со значением, хранящимся
когда требуется вернуть
хотим использовать только реализуя, фактически, «левыйСинтаксис этой функции следующий:Минусы за разные месяцы:непредсказуем. Начальную ячейку не
Поиск значений по вертикали в списке его
и в массивах EXCEL сопоставляет
buchlotnik
сверху.0 – (по умолчанию) в ячейке B2, не само значение,
функцию ПОИСПОЗ, не ВПР».
=ПОИСКПОЗ(Что_ищем; Где_ищем; Режим_поиска): Работает только сНужно найти и вытащить=СУММПРОИЗВ((A4:A15=D4)*(B4:B15))В поле следует включать в в списке неизвестного нет, то будет констант. Например, формула
искомое_значение:Как сделать «приближенный
поиск первого значения и возвращает массив содержащееся в искомой
прибегая к формуламТак, в предыдущем примере
где числовыми данными на цену заданного товарасоответствующие значения суммируются
Управление
excelworld.ru
Индекс и Поискпоз с несколькими условиями (Формулы/Formulas)
этот диапазон. размера по точному
возвращена ошибка #Н/Д. =ПОИСКПОЗ(«груши»;{«яблоки»;»ГРУШИ»;»мандарины»};0) вернет значениесо значениями вjakim поиск» — F1 в массиве или результатов сравнения). Если ячейке, а ее с комбинациями других получить не номер,Что_ищем выходе, не применима (=СУММЕСЛИ(A4:A15;D4;B4:B15)выберите значение1 совпадению2. Произведем поиск позиции 2. аргументе, а ПОИСКПОЗ()-то где?
Il_sun диапазоне ячеек (не
функция ПОИСКПОЗ нашла координату относительно рассматриваемого функций ИНДЕКС и а название модели
- это значение,
для поиска текста,Нектаринсоответствующие значения суммируются
Надстройки Excel
— это количество столбцов,Поиск значений в списке в отсортированном поЕсли искомое значение точнопросматриваемый_массив.jakim: в отношении прикрепленного обязательно упорядоченном), которое значение ИСТИНА, будет
диапазона. В случае т.п. Выход из
генератора можно очень которое надо найти не работает в) в определенном месяце
=БИЗВЛЕЧЬ(A3:B15;2;F15:F16)и нажмите кнопку которое нужно отсчитать по горизонтали по возрастанию списке числовых не известно, то
Если: Пожалуйста ПОИСКПОЗ только файла формула должна полностью совпадает со
возвращена позиция его использования для констант этой ситуации находится
легко:Где_ищем старых версиях Excel (
возвращается ошибка #ЧИСЛО!Перейти справа от начальной точному совпадению значений (диапазон
с помощью подстановочных
тип_сопоставления наоборот.
иметь вид значением, переданным в
первого вхождения в
массивов, которые могут в определении настроекНу, и поскольку Excel- это одномерный
(2003 и ранее).Январь
Для функции ВПР() требуется,
. ячейки, чтобы получитьПоиск значений в спискеB31:B37
знаков можно задатьравен 0, то=IFERROR(MATCH(1;INDEX((B$3:B$400=H5)*(C$3:C$400=I5)*(D$3:D$400=J5)*(F$3:F$400=K5);0);0);»нет»)
200?'200px':''+(this.scrollHeight+5)+'px');">=ИНДЕКС(B2:C3;ПОИСКПОЗ(A8;A2:A3;0);ПОИСКПОЗ(A6;B1:C1;0))
excelworld.ru
качестве первого аргумента.
Этот учебник рассказывает о главных преимуществах функций ИНДЕКС и ПОИСКПОЗ в Excel, которые делают их более привлекательными по сравнению с ВПР. Вы увидите несколько примеров формул, которые помогут Вам легко справиться со многими сложными задачами, перед которыми функция ВПР бессильна.
В нескольких недавних статьях мы приложили все усилия, чтобы разъяснить начинающим пользователям основы функции ВПР и показать примеры более сложных формул для продвинутых пользователей. Теперь мы попытаемся, если не отговорить Вас от использования ВПР, то хотя бы показать альтернативные способы реализации вертикального поиска в Excel.
Зачем нам это? – спросите Вы. Да, потому что ВПР – это не единственная функция поиска в Excel, и её многочисленные ограничения могут помешать Вам получить желаемый результат во многих ситуациях. С другой стороны, функции ИНДЕКС и ПОИСКПОЗ – более гибкие и имеют ряд особенностей, которые делают их более привлекательными, по сравнению с ВПР.
- Базовая информация об ИНДЕКС и ПОИСКПОЗ
- Используем функции ИНДЕКС и ПОИСКПОЗ в Excel
- Преимущества ИНДЕКС и ПОИСКПОЗ перед ВПР
- ИНДЕКС и ПОИСКПОЗ – примеры формул
- Как находить значения, которые находятся слева
- Вычисления при помощи ИНДЕКС и ПОИСКПОЗ
- Поиск по известным строке и столбцу
- Поиск по нескольким критериям
- ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА
Содержание
- Базовая информация об ИНДЕКС и ПОИСКПОЗ
- ИНДЕКС – синтаксис и применение функции
- ПОИСКПОЗ – синтаксис и применение функции
- Как использовать ИНДЕКС и ПОИСКПОЗ в Excel
- Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?
- 4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:
- ИНДЕКС и ПОИСКПОЗ – примеры формул
- Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС
- Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)
- О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ
- Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу
- Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ
- ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel
Базовая информация об ИНДЕКС и ПОИСКПОЗ
Так как задача этого учебника – показать возможности функций ИНДЕКС и ПОИСКПОЗ для реализации вертикального поиска в Excel, мы не будем задерживаться на их синтаксисе и применении.
Приведём здесь необходимый минимум для понимания сути, а затем разберём подробно примеры формул, которые показывают преимущества использования ИНДЕКС и ПОИСКПОЗ вместо ВПР.
ИНДЕКС – синтаксис и применение функции
Функция INDEX (ИНДЕКС) в Excel возвращает значение из массива по заданным номерам строки и столбца. Функция имеет вот такой синтаксис:
INDEX(array,row_num,[column_num])
ИНДЕКС(массив;номер_строки;[номер_столбца])
Каждый аргумент имеет очень простое объяснение:
- array (массив) – это диапазон ячеек, из которого необходимо извлечь значение.
- row_num (номер_строки) – это номер строки в массиве, из которой нужно извлечь значение. Если не указан, то обязательно требуется аргумент column_num (номер_столбца).
- column_num (номер_столбца) – это номер столбца в массиве, из которого нужно извлечь значение. Если не указан, то обязательно требуется аргумент row_num (номер_строки)
Если указаны оба аргумента, то функция ИНДЕКС возвращает значение из ячейки, находящейся на пересечении указанных строки и столбца.
Вот простейший пример функции INDEX (ИНДЕКС):
=INDEX(A1:C10,2,3)
=ИНДЕКС(A1:C10;2;3)
Формула выполняет поиск в диапазоне A1:C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, то есть из ячейки C2.
Очень просто, правда? Однако, на практике Вы далеко не всегда знаете, какие строка и столбец Вам нужны, и поэтому требуется помощь функции ПОИСКПОЗ.
ПОИСКПОЗ – синтаксис и применение функции
Функция MATCH (ПОИСКПОЗ) в Excel ищет указанное значение в диапазоне ячеек и возвращает относительную позицию этого значения в диапазоне.
Например, если в диапазоне B1:B3 содержатся значения New-York, Paris, London, тогда следующая формула возвратит цифру 3, поскольку «London» – это третий элемент в списке.
=MATCH("London",B1:B3,0)
=ПОИСКПОЗ("London";B1:B3;0)
Функция MATCH (ПОИСКПОЗ) имеет вот такой синтаксис:
MATCH(lookup_value,lookup_array,[match_type])
ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])
- lookup_value (искомое_значение) – это число или текст, который Вы ищите. Аргумент может быть значением, в том числе логическим, или ссылкой на ячейку.
- lookup_array (просматриваемый_массив) – диапазон ячеек, в котором происходит поиск.
- match_type (тип_сопоставления) – этот аргумент сообщает функции ПОИСКПОЗ, хотите ли Вы найти точное или приблизительное совпадение:
- 1 или не указан – находит максимальное значение, меньшее или равное искомому. Просматриваемый массив должен быть упорядочен по возрастанию, то есть от меньшего к большему.
- 0 – находит первое значение, равное искомому. Для комбинации ИНДЕКС/ПОИСКПОЗ всегда нужно точное совпадение, поэтому третий аргумент функции ПОИСКПОЗ должен быть равен 0.
- -1 – находит наименьшее значение, большее или равное искомому значению. Просматриваемый массив должен быть упорядочен по убыванию, то есть от большего к меньшему.
На первый взгляд, польза от функции ПОИСКПОЗ вызывает сомнение. Кому нужно знать положение элемента в диапазоне? Мы хотим знать значение этого элемента!
Позвольте напомнить, что относительное положение искомого значения (т.е. номер строки и/или столбца) – это как раз то, что мы должны указать для аргументов row_num (номер_строки) и/или column_num (номер_столбца) функции INDEX (ИНДЕКС). Как Вы помните, функция ИНДЕКС может возвратить значение, находящееся на пересечении заданных строки и столбца, но она не может определить, какие именно строка и столбец нас интересуют.
Как использовать ИНДЕКС и ПОИСКПОЗ в Excel
Теперь, когда Вам известна базовая информация об этих двух функциях, полагаю, что уже становится понятно, как функции ПОИСКПОЗ и ИНДЕКС могут работать вместе. ПОИСКПОЗ определяет относительную позицию искомого значения в заданном диапазоне ячеек, а ИНДЕКС использует это число (или числа) и возвращает результат из соответствующей ячейки.
Ещё не совсем понятно? Представьте функции ИНДЕКС и ПОИСКПОЗ в таком виде:
=INDEX(столбец из которого извлекаем,(MATCH (искомое значение,столбец в котором ищем,0))
=ИНДЕКС(столбец из которого извлекаем;(ПОИСКПОЗ(искомое значение;столбец в котором ищем;0))
Думаю, ещё проще будет понять на примере. Предположим, у Вас есть вот такой список столиц государств:
Давайте найдём население одной из столиц, например, Японии, используя следующую формулу:
=INDEX($D$2:$D$10,MATCH("Japan",$B$2:$B$10,0))
=ИНДЕКС($D$2:$D$10;ПОИСКПОЗ("Japan";$B$2:$B$10;0))
Теперь давайте разберем, что делает каждый элемент этой формулы:
- Функция MATCH (ПОИСКПОЗ) ищет значение «Japan» в столбце B, а конкретно – в ячейках B2:B10, и возвращает число 3, поскольку «Japan» в списке на третьем месте.
- Функция INDEX (ИНДЕКС) использует 3 для аргумента row_num (номер_строки), который указывает из какой строки нужно возвратить значение. Т.е. получается простая формула:
=INDEX($D$2:$D$10,3)
=ИНДЕКС($D$2:$D$10;3)
Формула говорит примерно следующее: ищи в ячейках от D2 до D10 и извлеки значение из третьей строки, то есть из ячейки D4, так как счёт начинается со второй строки.
Вот такой результат получится в Excel:
Важно! Количество строк и столбцов в массиве, который использует функция INDEX (ИНДЕКС), должно соответствовать значениям аргументов row_num (номер_строки) и column_num (номер_столбца) функции MATCH (ПОИСКПОЗ). Иначе результат формулы будет ошибочным.
Стоп, стоп… почему мы не можем просто использовать функцию VLOOKUP (ВПР)? Есть ли смысл тратить время, пытаясь разобраться в лабиринтах ПОИСКПОЗ и ИНДЕКС?
=VLOOKUP("Japan",$B$2:$D$2,3)
=ВПР("Japan";$B$2:$D$2;3)
В данном случае – смысла нет! Цель этого примера – исключительно демонстрационная, чтобы Вы могли понять, как функции ПОИСКПОЗ и ИНДЕКС работают в паре. Последующие примеры покажут Вам истинную мощь связки ИНДЕКС и ПОИСКПОЗ, которая легко справляется с многими сложными ситуациями, когда ВПР оказывается в тупике.
Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?
Решая, какую формулу использовать для вертикального поиска, большинство гуру Excel считают, что ИНДЕКС/ПОИСКПОЗ намного лучше, чем ВПР. Однако, многие пользователи Excel по-прежнему прибегают к использованию ВПР, т.к. эта функция гораздо проще. Так происходит, потому что очень немногие люди до конца понимают все преимущества перехода с ВПР на связку ИНДЕКС и ПОИСКПОЗ, а тратить время на изучение более сложной формулы никто не хочет.
Далее я попробую изложить главные преимущества использования ПОИСКПОЗ и ИНДЕКС в Excel, а Вы решите – остаться с ВПР или переключиться на ИНДЕКС/ПОИСКПОЗ.
4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:
1. Поиск справа налево. Как известно любому грамотному пользователю Excel, ВПР не может смотреть влево, а это значит, что искомое значение должно обязательно находиться в крайнем левом столбце исследуемого диапазона. В случае с ПОИСКПОЗ/ИНДЕКС, столбец поиска может быть, как в левой, так и в правой части диапазона поиска. Пример: Как находить значения, которые находятся слева покажет эту возможность в действии.
2. Безопасное добавление или удаление столбцов. Формулы с функцией ВПР перестают работать или возвращают ошибочные значения, если удалить или добавить столбец в таблицу поиска. Для функции ВПР любой вставленный или удалённый столбец изменит результат формулы, поскольку синтаксис ВПР требует указывать весь диапазон и конкретный номер столбца, из которого нужно извлечь данные.
Например, если у Вас есть таблица A1:C10, и требуется извлечь данные из столбца B, то нужно задать значение 2 для аргумента col_index_num (номер_столбца) функции ВПР, вот так:
=VLOOKUP("lookup value",A1:C10,2)
=ВПР("lookup value";A1:C10;2)
Если позднее Вы вставите новый столбец между столбцами A и B, то значение аргумента придется изменить с 2 на 3, иначе формула возвратит результат из только что вставленного столбца.
Используя ПОИСКПОЗ/ИНДЕКС, Вы можете удалять или добавлять столбцы к исследуемому диапазону, не искажая результат, так как определен непосредственно столбец, содержащий нужное значение. Действительно, это большое преимущество, особенно когда работать приходится с большими объёмами данных. Вы можете добавлять и удалять столбцы, не беспокоясь о том, что нужно будет исправлять каждую используемую функцию ВПР.
3. Нет ограничения на размер искомого значения. Используя ВПР, помните об ограничении на длину искомого значения в 255 символов, иначе рискуете получить ошибку #VALUE! (#ЗНАЧ!). Итак, если таблица содержит длинные строки, единственное действующее решение – это использовать ИНДЕКС/ПОИСКПОЗ.
Предположим, Вы используете вот такую формулу с ВПР, которая ищет в ячейках от B5 до D10 значение, указанное в ячейке A2:
=VLOOKUP(A2,B5:D10,3,FALSE)
=ВПР(A2;B5:D10;3;ЛОЖЬ)
Формула не будет работать, если значение в ячейке A2 длиннее 255 символов. Вместо неё Вам нужно использовать аналогичную формулу ИНДЕКС/ПОИСКПОЗ:
=INDEX(D5:D10,MATCH(TRUE,INDEX(B5:B10=A2,0),0))
=ИНДЕКС(D5:D10;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B5:B10=A2;0);0))
4. Более высокая скорость работы. Если Вы работаете с небольшими таблицами, то разница в быстродействии Excel будет, скорее всего, не заметная, особенно в последних версиях. Если же Вы работаете с большими таблицами, которые содержат тысячи строк и сотни формул поиска, Excel будет работать значительно быстрее, при использовании ПОИСКПОЗ и ИНДЕКС вместо ВПР. В целом, такая замена увеличивает скорость работы Excel на 13%.
Влияние ВПР на производительность Excel особенно заметно, если рабочая книга содержит сотни сложных формул массива, таких как ВПР+СУММ. Дело в том, что проверка каждого значения в массиве требует отдельного вызова функции ВПР. Поэтому, чем больше значений содержит массив и чем больше формул массива содержит Ваша таблица, тем медленнее работает Excel.
С другой стороны, формула с функциями ПОИСКПОЗ и ИНДЕКС просто совершает поиск и возвращает результат, выполняя аналогичную работу заметно быстрее.
ИНДЕКС и ПОИСКПОЗ – примеры формул
Теперь, когда Вы понимаете причины, из-за которых стоит изучать функции ПОИСКПОЗ и ИНДЕКС, давайте перейдём к самому интересному и увидим, как можно применить теоретические знания на практике.
Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС
Любой учебник по ВПР твердит, что эта функция не может смотреть влево. Т.е. если просматриваемый столбец не является крайним левым в диапазоне поиска, то нет шансов получить от ВПР желаемый результат.
Функции ПОИСКПОЗ и ИНДЕКС в Excel гораздо более гибкие, и им все-равно, где находится столбец со значением, которое нужно извлечь. Для примера, снова вернёмся к таблице со столицами государств и населением. На этот раз запишем формулу ПОИСКПОЗ/ИНДЕКС, которая покажет, какое место по населению занимает столица России (Москва).
Как видно на рисунке ниже, формула отлично справляется с этой задачей:
=INDEX($A$2:$A$10,MATCH("Russia",$B$2:$B$10,0))
=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ("Russia";$B$2:$B$10;0))
Теперь у Вас не должно возникать проблем с пониманием, как работает эта формула:
- Во-первых, задействуем функцию MATCH (ПОИСКПОЗ), которая находит положение «Russia» в списке:
=MATCH("Russia",$B$2:$B$10,0))
=ПОИСКПОЗ("Russia";$B$2:$B$10;0))
- Далее, задаём диапазон для функции INDEX (ИНДЕКС), из которого нужно извлечь значение. В нашем случае это A2:A10.
- Затем соединяем обе части и получаем формулу:
=INDEX($A$2:$A$10;MATCH("Russia";$B$2:$B$10;0))
=ИНДЕКС($A$2:$A$10;ПОИСКПОЗ("Russia";$B$2:$B$10;0))
Подсказка: Правильным решением будет всегда использовать абсолютные ссылки для ИНДЕКС и ПОИСКПОЗ, чтобы диапазоны поиска не сбились при копировании формулы в другие ячейки.
Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)
Вы можете вкладывать другие функции Excel в ИНДЕКС и ПОИСКПОЗ, например, чтобы найти минимальное, максимальное или ближайшее к среднему значение. Вот несколько вариантов формул, применительно к таблице из предыдущего примера:
1. MAX (МАКС). Формула находит максимум в столбце D и возвращает значение из столбца C той же строки:
=INDEX($C$2:$C$10,MATCH(MAX($D$2:I$10),$D$2:D$10,0))
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МАКС($D$2:I$10);$D$2:D$10;0))
Результат: Beijing
2. MIN (МИН). Формула находит минимум в столбце D и возвращает значение из столбца C той же строки:
=INDEX($C$2:$C$10,MATCH(MIN($D$2:I$10),$D$2:D$10,0))
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(МИН($D$2:I$10);$D$2:D$10;0))
Результат: Lima
3. AVERAGE (СРЗНАЧ). Формула вычисляет среднее в диапазоне D2:D10, затем находит ближайшее к нему и возвращает значение из столбца C той же строки:
=INDEX($C$2:$C$10,MATCH(AVERAGE($D$2:D$10),$D$2:D$10,1))
=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(СРЗНАЧ($D$2:D$10);$D$2:D$10;1))
Результат: Moscow
О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ
Используя функцию СРЗНАЧ в комбинации с ИНДЕКС и ПОИСКПОЗ, в качестве третьего аргумента функции ПОИСКПОЗ чаще всего нужно будет указывать 1 или -1 в случае, если Вы не уверены, что просматриваемый диапазон содержит значение, равное среднему. Если же Вы уверены, что такое значение есть, – ставьте 0 для поиска точного совпадения.
- Если указываете 1, значения в столбце поиска должны быть упорядочены по возрастанию, а формула вернёт максимальное значение, меньшее или равное среднему.
- Если указываете -1, значения в столбце поиска должны быть упорядочены по убыванию, а возвращено будет минимальное значение, большее или равное среднему.
В нашем примере значения в столбце D упорядочены по возрастанию, поэтому мы используем тип сопоставления 1. Формула ИНДЕКС/ПОИСКПОЗ возвращает «Moscow», поскольку величина населения города Москва – ближайшее меньшее к среднему значению (12 269 006).
Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу
Эта формула эквивалентна двумерному поиску ВПР и позволяет найти значение на пересечении определённой строки и столбца.
В этом примере формула ИНДЕКС/ПОИСКПОЗ будет очень похожа на формулы, которые мы уже обсуждали в этом уроке, с одним лишь отличием. Угадайте каким?
Как Вы помните, синтаксис функции INDEX (ИНДЕКС) позволяет использовать три аргумента:
INDEX(array,row_num,[column_num])
ИНДЕКС(массив;номер_строки;[номер_столбца])
И я поздравляю тех из Вас, кто догадался!
Начнём с того, что запишем шаблон формулы. Для этого возьмём уже знакомую нам формулу ИНДЕКС/ПОИСКПОЗ и добавим в неё ещё одну функцию ПОИСКПОЗ, которая будет возвращать номер столбца.
=INDEX(Ваша таблица,(MATCH(значение для вертикального поиска,столбец, в котором искать,0)),(MATCH(значение для горизонтального поиска,строка в которой искать,0))
=ИНДЕКС(Ваша таблица,(MATCH(значение для вертикального поиска,столбец, в котором искать,0)),(MATCH(значение для горизонтального поиска,строка в которой искать,0))
Обратите внимание, что для двумерного поиска нужно указать всю таблицу в аргументе array (массив) функции INDEX (ИНДЕКС).
А теперь давайте испытаем этот шаблон на практике. Ниже Вы видите список самых населённых стран мира. Предположим, наша задача узнать население США в 2015 году.
Хорошо, давайте запишем формулу. Когда мне нужно создать сложную формулу в Excel с вложенными функциями, то я сначала каждую вложенную записываю отдельно.
Итак, начнём с двух функций ПОИСКПОЗ, которые будут возвращать номера строки и столбца для функции ИНДЕКС:
- ПОИСКПОЗ для столбца – мы ищем в столбце B, а точнее в диапазоне B2:B11, значение, которое указано в ячейке H2 (USA). Функция будет выглядеть так:
=MATCH($H$2,$B$1:$B$11,0)
=ПОИСКПОЗ($H$2;$B$1:$B$11;0)
Результатом этой формулы будет 4, поскольку «USA» – это 4-ый элемент списка в столбце B (включая заголовок).
- ПОИСКПОЗ для строки – мы ищем значение ячейки H3 (2015) в строке 1, то есть в ячейках A1:E1:
=MATCH($H$3,$A$1:$E$1,0)
=ПОИСКПОЗ($H$3;$A$1:$E$1;0)
Результатом этой формулы будет 5, поскольку «2015» находится в 5-ом столбце.
Теперь вставляем эти формулы в функцию ИНДЕКС и вуаля:
=INDEX($A$1:$E$11,MATCH($H$2,$B$1:$B$11,0),MATCH($H$3,$A$1:$E$1,0))
=ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($H$2;$B$1:$B$11;0);ПОИСКПОЗ($H$3;$A$1:$E$1;0))
Если заменить функции ПОИСКПОЗ на значения, которые они возвращают, формула станет легкой и понятной:
=INDEX($A$1:$E$11,4,5))
=ИНДЕКС($A$1:$E$11;4;5))
Эта формула возвращает значение на пересечении 4-ой строки и 5-го столбца в диапазоне A1:E11, то есть значение ячейки E4. Просто? Да!
Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ
В учебнике по ВПР мы показывали пример формулы с функцией ВПР для поиска по нескольким критериям. Однако, существенным ограничением такого решения была необходимость добавлять вспомогательный столбец. Хорошая новость: формула ИНДЕКС/ПОИСКПОЗ может искать по значениям в двух столбцах, без необходимости создания вспомогательного столбца!
Предположим, у нас есть список заказов, и мы хотим найти сумму по двум критериям – имя покупателя (Customer) и продукт (Product). Дело усложняется тем, что один покупатель может купить сразу несколько разных продуктов, и имена покупателей в таблице на листе Lookup table расположены в произвольном порядке.
Вот такая формула ИНДЕКС/ПОИСКПОЗ решает задачу:
{=INDEX('Lookup table'!$A$2:$C$13,MATCH(1,(A2='Lookup table'!$A$2:$A$13)*
(B2='Lookup table'!$B$2:$B$13),0),3)}
{=ИНДЕКС('Lookup table'!$A$2:$C$13;ПОИСКПОЗ(1;(A2='Lookup table'!$A$2:$A$13)*
(B2='Lookup table'!$B$2:$B$13);0);3)}
Эта формула сложнее других, которые мы обсуждали ранее, но вооруженные знанием функций ИНДЕКС и ПОИСКПОЗ Вы одолеете ее. Самая сложная часть – это функция ПОИСКПОЗ, думаю, её нужно объяснить первой.
MATCH(1,(A2='Lookup table'!$A$2:$A$13),0)*(B2='Lookup table'!$B$2:$B$13)
ПОИСКПОЗ(1;(A2='Lookup table'!$A$2:$A$13);0)*(B2='Lookup table'!$B$2:$B$13)
В формуле, показанной выше, искомое значение – это 1, а массив поиска – это результат умножения. Хорошо, что же мы должны перемножить и почему? Давайте разберем все по порядку:
- Берем первое значение в столбце A (Customer) на листе Main table и сравниваем его со всеми именами покупателей в таблице на листе Lookup table (A2:A13).
- Если совпадение найдено, уравнение возвращает 1 (ИСТИНА), а если нет – 0 (ЛОЖЬ).
- Далее, мы делаем то же самое для значений столбца B (Product).
- Затем перемножаем полученные результаты (1 и 0). Только если совпадения найдены в обоих столбцах (т.е. оба критерия истинны), Вы получите 1. Если оба критерия ложны, или выполняется только один из них – Вы получите 0.
Теперь понимаете, почему мы задали 1, как искомое значение? Правильно, чтобы функция ПОИСКПОЗ возвращала позицию только, когда оба критерия выполняются.
Обратите внимание: В этом случае необходимо использовать третий не обязательный аргумент функции ИНДЕКС. Он необходим, т.к. в первом аргументе мы задаем всю таблицу и должны указать функции, из какого столбца нужно извлечь значение. В нашем случае это столбец C (Sum), и поэтому мы ввели 3.
И, наконец, т.к. нам нужно проверить каждую ячейку в массиве, эта формула должна быть формулой массива. Вы можете видеть это по фигурным скобкам, в которые она заключена. Поэтому, когда закончите вводить формулу, не забудьте нажать Ctrl+Shift+Enter.
Если всё сделано верно, Вы получите результат как на рисунке ниже:
ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel
Как Вы, вероятно, уже заметили (и не раз), если вводить некорректное значение, например, которого нет в просматриваемом массиве, формула ИНДЕКС/ПОИСКПОЗ сообщает об ошибке #N/A (#Н/Д) или #VALUE! (#ЗНАЧ!). Если Вы хотите заменить такое сообщение на что-то более понятное, то можете вставить формулу с ИНДЕКС и ПОИСКПОЗ в функцию ЕСЛИОШИБКА.
Синтаксис функции ЕСЛИОШИБКА очень прост:
IFERROR(value,value_if_error)
ЕСЛИОШИБКА(значение;значение_если_ошибка)
Где аргумент value (значение) – это значение, проверяемое на предмет наличия ошибки (в нашем случае – результат формулы ИНДЕКС/ПОИСКПОЗ); а аргумент value_if_error (значение_если_ошибка) – это значение, которое нужно возвратить, если формула выдаст ошибку.
Например, Вы можете вставить формулу из предыдущего примера в функцию ЕСЛИОШИБКА вот таким образом:
=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),
"Совпадений не найдено. Попробуйте еще раз!")=ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0));
"Совпадений не найдено. Попробуйте еще раз!")
И теперь, если кто-нибудь введет ошибочное значение, формула выдаст вот такой результат:
Если Вы предпочитаете в случае ошибки оставить ячейку пустой, то можете использовать кавычки («»), как значение второго аргумента функции ЕСЛИОШИБКА. Вот так:
IFERROR(INDEX(массив,MATCH(искомое_значение,просматриваемый_массив,0),"")
ЕСЛИОШИБКА(ИНДЕКС(массив;ПОИСКПОЗ(искомое_значение;просматриваемый_массив;0);"")
Надеюсь, что хотя бы одна формула, описанная в этом учебнике, показалась Вам полезной. Если Вы сталкивались с другими задачами поиска, для которых не смогли найти подходящее решение среди информации в этом уроке, смело опишите свою проблему в комментариях, и мы все вместе постараемся решить её.
Оцените качество статьи. Нам важно ваше мнение: