Как работать с ИНДЕКС и ПОИСКПОЗ в Excel и Google Таблицах

Инструкция по поиску данных в таблицах

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

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

Синтаксис функций ИНДЕКС и ПОИСКПОЗ

В общем виде функция ИНДЕКС или INDEX строится так:

=ИНДЕКС(диапазон; номер_строки; номер_столбца)

Она состоит из компонентов:

  • массив — диапазон, из которого нужно получить значение;
  • номер_строки внутри массива, откуда нужно взять результат;
  • номер_столбца внутри массива. Если значения указаны в диапазоне одного столбца или одной строки, то этот параметр можно не указывать.

Например, у маркетолога есть таблица эффективности рекламных каналов. В столбце A указаны названия каналов, в столбце B — количество лидов, в столбце C — стоимость лида. Если пользователь знает, что нужный канал находится в третьей строке диапазона C2:C6, формула будет такой:

=ИНДЕКС(С2:С6; 3)

Как использовать функцию ИНДЕКС
Формула возвращает значение из третьей строки выбранного диапазона

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

В общем виде функция ПОИСКПОЗ (MATCH) записывается так:

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

Компоненты функции:

  • искомое_значение — то, что нужно найти. Например, название канала;
  • просматриваемый_диапазон — столбец или строка, где выполняется поиск;
  • тип_сопоставления — режим поиска.

У типа сопоставления может быть одно из значений: 0, 1, -1.

Тип сопоставления Расшифровка Пример условия Что означает в конкретном примере
0 Ищет точное совпадение значения в диапазоне. ПОИСКПОЗ("VK Реклама"; A2:A10; 0) Найди строку, где находится канал «VK Реклама».
1 Находит наибольшее значение, которое меньше или равно искомому. Диапазон должен быть отсортирован по возрастанию. ПОИСКПОЗ(100; D2:D10; 1) Найди строку с наибольшим значением в диапазоне, которое не превышает 100.
-1 Ищет наименьшее значение, которое больше или равно искомому. Диапазон должен быть отсортирован по убыванию. ПОИСКПОЗ(100; E2:E10; -1) Найди строку, где значение больше или равно 100.

Если выбрать неверный тип сопоставления, функция может вернуть неправильный индекс или выдать ошибку.

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

=ИНДЕКС(диапазон_с_результатом; ПОИСКПОЗ(искомое_значение; диапазон_поиска; 0))

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

Например, маркетолог хочет найти в таблице стоимость лида по каналу «VK Реклама». Значение находится в столбце C, а сам канал в столбце A. Формула будет выглядеть так:

=ИНДЕКС(C2:C6; ПОИСКПОЗ("VK Реклама"; A2:A6; 0))

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

При этом поиск не зависит от регистра: «vk реклама», «Vk реклама» или «VK РЕКЛАМА» дадут тот же результат.

Как функции ИНДЕКС и ПОИСКПОЗ находят нужное значение
Формула находит строку с «VK Реклама» и подставляет второе значение из диапазона C2:C6, таким образом получается нужный результат

Когда стоит использовать ИНДЕКС и ПОИСКПОЗ вместо ВПР

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

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

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

К примеру, в компании у каждого сотрудника есть номер ID, к которому привязано имя и адрес электронной почты. А нам нужно найти email сотрудника по его ID из правого столбца таблицы.

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

Можно использовать формулу:

=ИНДЕКС(A2:A10; ПОИСКПОЗ(102; C2:C10; 0))

ПОИСКПОЗ определяет строку, где ID равен 102, а ИНДЕКС возвращает значение из столбца A, адрес электронной почты сотрудника.

Пример поиска данных с использованием ИНДЕКС и ПОИСКПОЗ вместо ВПР
Формула ИНДЕКС и ПОИСКПОЗ находит email сотрудника по его ID

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

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

Например, маркетолог ведет таблицу показателей по рекламным каналам. Чтобы быстро найти стоимость клика (СРС) по email-рассылкам, он использует функцию ВПР.

Как формула ВПР находит показатель по названию канала
С помощью ВПР можно найти показатель СРС конкретно по каналу «Email-рассылки»

Для этого используется формула:

=ВПР(G2; A2:D6; 4; 0)

В ячейке G2 записано точное название канала «Email-рассылки». ВПР находит канал в столбце A и возвращает CPC из четвертого столбца диапазона.

Предположим, что в таблицу нужно добавить новую метрику, например, CTR. Он вставляет столбец между «Клики» и «CPC», чтобы показатели располагались в логическом порядке.

Как работает функция ВПР при добавлении новых данных в таблицу
Вставка столбца с CTR изменяет порядок столбцов, и ВПР начинает выводить CTR вместо CPC

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

=ИНДЕКС(D2:D6; ПОИСКПОЗ(G2; A2:A6; 0))

Как ИНДЕКС и ПОИСКПОЗ помогают избежать ошибок при изменении таблицы
Связка ИНДЕКС и ПОИСКПОЗ ищет канал и возвращает нужный столбец с CPC независимо от изменений в таблице

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

Проверить только нужные столбцы. ВПР анализирует весь диапазон, который указан в формуле. Если в аргументе указано A:Z, функция просматривает все столбцы между A и Z, даже если используется только один столбец результата.

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

Сделать поиск одновременно по строкам и столбцам. ВПР выполняет только вертикальный поиск. Если нужно искать по строкам, используется отдельная функция — ГПР.

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

Например, у маркетолога есть сводная таблица с результатами рекламных каналов по месяцам. В строках указаны источники трафика, в столбцах — месяцы. Нужно узнать стоимость заявки по каналу «Яндекс Директ» в марте.

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

Для поиска используется формула:

=ИНДЕКС(B2:G10;ПОИСКПОЗ("Яндекс Директ"; A2:A10; 0);ПОИСКПОЗ("Март"; B1:G1; 0))

Первая функция ПОИСКПОЗ находит строку «Яндекс Директ», а вторая — столбец «Март». ИНДЕКС возвращает стоимость заявки на пересечении строки и столбца.

Пример двумерного поиска по строке и столбцу с помощью ИНДЕКС и ПОИСКПОЗ
Формула выполняет двумерный поиск: ищет значение по строке «Яндекс Директ», столбцу «Март» и выводит число на их пересечении

В Excel 2021 и Microsoft 365 есть функция ПРОСМОТРХ (XLOOKUP). Она заменяет связку ИНДЕКС + ПОИСКПОЗ или ВПР в большинстве задач: умеет искать в любую сторону, возвращает точные соответствия, работает со строками и столбцами, проще читается и не ломается при изменении структуры таблицы.

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

Например, маркетологу нужно найти таблице стоимость лида по каналу «VK Реклама».

Таблица для расчета стоимости лида в рекламных кампаниях
Нужно задать формулу, которая поможет найти стоимость лида по каналу «VK Реклама»

Вместо связки ИНДЕКС + ПОИСКПОЗ:

=ИНДЕКС(C2:C6; ПОИСКПОЗ("VK Реклама"; A2:A6; 0))

Можно использовать одну формулу ПРОСМОТРХ:

=ПРОСМОТРХ("VK Реклама"; A2:A6; C2:C6; "Не найдено")

ПРОСМОТРХ ищет канал в столбце A и возвращает соответствующее значение из столбца C. Если нужного канала нет, формула выводит «Не найдено».

Как использовать ПРОСМОТРХ для поиска значения по каналу «VK Реклама»
Формула ПРОСМОТРХ находит строку с «VK Реклама» и выводит нужное значение стоимости лида

Типичные ошибки при работе с функциями ИНДЕКС и ПОИСКПОЗ и их решение

Ошибка Описание Как исправить
Ошибка #Н/Д Функция ПОИСКПОЗ не может найти искомое значение в указанном диапазоне. Причины могут быть разные: опечатка в значении, поиск числа в текстовом столбце (и наоборот) или лишние пробелы. Проверить, чтобы искомое значение было написано без ошибок. Форматы данных должны совпадать: число нужно искать среди чисел, текст — среди текста. Чтобы удалить лишние пробелы, можно применить функцию СЖПРОБЕЛЫ. К примеру, так:

=ИНДЕКС(B:B; ПОИСКПОЗ(СЖПРОБЕЛЫ(D2); A:A; 0))

Ошибка #ССЫЛКА! Появляется, если номер строки или столбца, который вернула функция ПОИСКПОЗ, выходит за пределы диапазона, указанного в функции ИНДЕКС. Например, ИНДЕКС работает с 10 строками, а ПОИСКПОЗ вернул результат «11». Проверить, что диапазон в ИНДЕКС не меньше диапазона в ПОИСКПОЗ. Частая причина ошибки в том, что диапазоны начинаются с разных строк:

=ИНДЕКС(B8:B10; ПОИСКПОЗ(D1; A8:A10; 0))

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

Например, ИНДЕКС(B2:B11; ПОИСКПОЗ(D2; A1:A10; 0)). Поиск происходит в диапазоне A1:A10, а результат берется из B2:B11, из-за этого результат смещается на одну строку.

Диапазоны для ИНДЕКС и ПОИСКПОЗ должны начинаться с одной строки и иметь одинаковый размер. 

Правильный пример: =ИНДЕКС(B2:B11; ПОИСКПОЗ(D2; A2:A11; 0))

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

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

«Честно» — рассылка о том, что волнует и бесит

Искренние письма о работе и жизни, эксклюзивные кейсы и интервью с экспертами диджитала.

Наш юрист будет ругаться, если вы не примете :(