Функции и формулы

Связка ИНДЕКС и ПОИСКПОЗ в Excel: значение слева от ключа и на пересечении

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

Тренажёр: 6 шагов

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

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

Ключевые факты: ИНДЕКС и ПОИСКПОЗ в Excel

  • ПОИСКПОЗ возвращает относительную позицию элемента в диапазоне, а не сам элемент[2].
  • Тип сопоставления принимает значения 1, 0 и -1, а без аргумента функция работает так, будто указан тип 1[2].
  • ИНДЕКС возвращает #ССЫЛКА!, если номер строки или столбца указывает за пределы массива[3].
  • Справка Microsoft относит обе функции к Microsoft 365, Excel 2024, Excel 2021, Excel 2019 и Excel 2016[2].
  • В Google Таблицах ПОИСКПОЗ тоже по умолчанию использует тип 1 и принимает только одномерный диапазон[4].

ИНДЕКС и ПОИСКПОЗ в Excel: синтаксис и порядок вычисления

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

ФункцияСинтаксис по справкеЧто возвращает
ПОИСКПОЗ (MATCH)ПОИСКПОЗ(искомое_значение;просматриваемый_массив;[тип_сопоставления])относительную позицию элемента в диапазоне, а не сам элемент
ИНДЕКС (INDEX)ИНДЕКС(массив;номер_строки;[номер_столбца])значение на пересечении строки и столбца массива
связкаИНДЕКС(столбец_ответа;ПОИСКПОЗ(ключ;столбец_поиска;0))значение из той строки, где найден ключ

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

ИНДЕКС умеет больше, чем требует связка. Если в массиве одна строка или один столбец, второй номер можно не указывать[3]. Ноль в номере строки или столбца заставляет функцию вернуть весь столбец или всю строку: в Microsoft 365 такую формулу достаточно подтвердить клавишей Enter, а в старых версиях — сочетанием Ctrl+Shift+Enter[3]. Ссылочная форма с четвёртым аргументом «номер_области» выбирает один из нескольких диапазонов, причём по умолчанию берётся первая область[3].

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

Разобравшись с синтаксисом, переходим к справочнику, в котором ответ лежит левее ключа.

Пример по шагам: код товара по названию

ПОИСКПОЗ и ИНДЕКС находят код товара по названию, хотя коды стоят левее названий. Справочник занимает столбцы A–C.

ABC
1КодТоварЦена
2101Кофе1200
3102Сахар90
4103Чай250
5104Какао480
  1. Встаньте в E2 и наберите =ПОИСКПОЗ("Чай";B2:B5;0): функция вернёт 3, потому что «Чай» стоит третьим в диапазоне B2:B5.
  2. Оберните результат в ИНДЕКС по столбцу кодов — получится формула из первой строки таблицы ниже.
  3. Нажмите Enter — в ячейке появится код 103.
  4. Проверьте формулу на названии, которого нет в справочнике: исправная связка покажет #Н/Д, а не чужой код.
  5. Перед протягиванием закрепите оба диапазона клавишей F4: $A$2:$A$5 и $B$2:$B$5.

Та же схема работает в любую сторону: меняются только два диапазона — где искать и откуда брать ответ.

ЗадачаФормулаОтвет
код по названию=ИНДЕКС(A2:A5;ПОИСКПОЗ("Чай";B2:B5;0))103
цена по коду=ИНДЕКС(C2:C5;ПОИСКПОЗ(103;A2:A5;0))250
название по цене=ИНДЕКС(B2:B5;ПОИСКПОЗ(1200;C2:C5;0))Кофе

Каждая строка таблицы берёт ответ из столбца, заданного первым аргументом. Почему без знака доллара диапазоны сползают, объяснено на странице о знаке доллара в ссылках и клавише F4.

Выборка на пересечении строки и столбца

Двумерный поиск — сильная сторона связки: вторая ПОИСКПОЗ подставляет номер столбца. На листе продаж в G1 записано «Петрова», в G2 — «Март».

ABCD
1МенеджерЯнварьФевральМарт
2Иванов120135150
3Петрова95110128
4Сидоров807691

Формула =ИНДЕКС(B2:D4;ПОИСКПОЗ(G1;A2:A4;0);ПОИСКПОЗ(G2;B1:D1;0)) вернёт 128: первая ПОИСКПОЗ нашла строку менеджера, вторая — столбец месяца. Замените в G2 «Март» на «Январь», и результат станет 95 без правки формулы. Соберите такую формулу в тренажёре: урок подставляет другие данные и проверяет, что связка находит верную ячейку.

Однако связка остаётся точной, только пока в ПОИСКПОЗ стоит правильный тип сопоставления.

Тип сопоставления: 0, 1 или -1

ПОИСКПОЗ меняет поведение в зависимости от третьего аргумента: 0 ищет точное совпадение, 1 и -1 — ближайшее значение в отсортированном списке. Справка Microsoft задаёт для каждого типа своё требование к данным[2].

ТипЧто находитТребование к данным
0первое значение, точно равное искомомулюбой порядок
1 или пустонаибольшее значение, меньшее или равное искомомупо возрастанию
-1наименьшее значение, большее или равное искомомупо убыванию

На данных из справки в B2:B5 стоят четыре числа.

B
225
338
440
541

Формула =ПОИСКПОЗ(41;B2:B5;0) вернёт 4, а =ПОИСКПОЗ(39;B2:B5;1) — 2: точного совпадения нет, и берётся позиция ближайшего меньшего значения, 38. Запись =ПОИСКПОЗ(40;B2:B5;-1) выдаст #Н/Д, потому что список не упорядочен по убыванию[2].

По умолчанию ПОИСКПОЗ работает с типом 1[2], и в этом главная ловушка связки. На несортированном справочнике кодов формула без нуля =ИНДЕКС(A2:A5;ПОИСКПОЗ("Чай";B2:B5)) вернёт 104 — код какао вместо кода чая, и никакого сообщения Excel не покажет.

Регистр букв ПОИСКПОЗ не различает[2]: «чай» и «Чай» для неё одинаковы. Подстановочные знаки работают только при типе 0 и текстовом искомом значении: ? заменяет один символ, * — любую последовательность, а тильда перед знаком ищет сам знак[2]. Запись =ПОИСКПОЗ("Ка*";B2:B5;0) на справочнике кодов вернёт 4 — позицию «Какао».

Миф: ПОИСКПОЗ без третьего аргумента ищет точное совпадение — на деле по умолчанию действует тип 1, то есть приблизительный поиск по отсортированному списку, как сказано в справке Microsoft[2].

В Google Таблицах у ПОИСКПОЗ те же три типа и то же значение по умолчанию — 1, а двумерный диапазон там возвращает #N/A[4]. Именно поэтому первой строкой диагностики любой ошибки связки стоит проверка нуля в ПОИСКПОЗ.

Ошибки связки: #Н/Д, #ССЫЛКА! и сдвиг на строку

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

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

Сдвиг на строку — самая тихая из ошибок. Формула =ИНДЕКС(A2:A5;ПОИСКПОЗ("Чай";B1:B5;0)) вернёт 104 вместо 103: заголовок попал в диапазон поиска, и позиция выросла на единицу, хотя столбец ответа по-прежнему отсчитывается от второй строки.

Внешняя функция выдаёт #ССЫЛКА!, если номер строки или столбца не указывает на ячейку внутри массива[3]. Запись =ИНДЕКС(A2:A5;5) просит пятую ячейку у диапазона из четырёх — отсюда ошибка. В ссылочной форме справка требует держать все области на одном листе[3].

ЕСЛИОШИБКА не исправляет причину, а только прячет её. Сначала убедитесь, что ключа действительно нет, и лишь затем подписывайте пустой результат: =ЕСЛИОШИБКА(ИНДЕКС(C2:C5;ПОИСКПОЗ("Мёд";B2:B5;0));"нет") вернёт «нет».

Миф: связка находит все строки с ключом — на деле тип 0 возвращает позицию первого значения, точно равного искомому, по справке Microsoft[2].

Остаётся понять, когда связку лучше заменить другим инструментом.

Когда связка не подойдёт

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

  • Если у ключа несколько строк и нужны все, связка вернёт только первую: тип 0 находит первое значение, точно равное искомому[2].
  • При ключе из двух полей, например товар и склад, одного поиска позиции не обойтись — приёмы собраны на странице о поиске по двум и более признакам.
  • Если диапазон поиска охватывает несколько строк и столбцов, формула вернёт #Н/Д: по справке Google аргумент «диапазон» должен быть одномерным[4].
  • Если области ссылочной формы лежат на разных листах, функция вернёт ошибку: справка требует держать их на одном листе[3].
  • Когда файл открывают только в новых версиях, ту же задачу короче решает одна функция ПРОСМОТРX — по справке Microsoft её нет в Excel 2016 и Excel 2019[5].
Не путать: ВПР берёт ответ по номеру столбца и только правее ключа — подробнее на странице о ВПР и переносе данных между таблицами.

Совместимость — главный козырь связки: блок «Применяется к» в справке Microsoft перечисляет для обеих функций Microsoft 365, Excel 2024 и Excel 2021 вместе с версиями для Mac, а также Excel 2019 и Excel 2016[2]. Поэтому формулу безопасно отправлять коллегам со старым Excel.

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

Частые вопросы

Как работает формула ИНДЕКС и ПОИСКПОЗ?

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

Чем связка лучше ВПР?

Связка отличается от ВПР тем, что берёт ответ из любого столбца, в том числе левее ключа, а ВПР находит значение только слева направо[1]. Номер столбца в связке вручную не пишется, поэтому вставка столбцов формулу не сбивает.

Что означает 0 в конце ПОИСКПОЗ?

Ноль в конце — это тип сопоставления «точное совпадение»: функция ищет первое значение, точно равное искомому, и не требует сортировки[2]. Без нуля действует тип 1, рассчитанный на список по возрастанию.

Почему связка возвращает соседнее значение?

Соседнее значение появляется, когда два диапазона начинаются с разных строк, например B1:B5 и A2:A5. Позиция сдвигается на единицу, и формула молча берёт ячейку ниже нужной.

Работают ли эти функции в Google Таблицах?

Да, обе функции есть в Google Таблицах, а типы сопоставления там те же, и по умолчанию тоже действует тип 1[4]. Диапазон поиска должен быть одной строкой или одним столбцом, иначе вернётся #N/A.

Как найти значение на пересечении строки и столбца?

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

Источники

  1. [1] Microsoft, справка «Поиск значений с помощью функций ВПР, ИНДЕКС и ПОИСКПОЗ», 2026
  2. [2] Microsoft, справка «Функция ПОИСКПОЗ», 2026
  3. [3] Microsoft, справка «Функция ИНДЕКС», 2026
  4. [4] Google, справка «MATCH function», 2026
  5. [5] Microsoft, справка «Функция ПРОСМОТРX», 2026

Похожие темы