Функция ИНДЕКС возвращает значение или ссылку на значение из таблицы или диапазона.
Функцию ИНДЕКС можно использовать двумя способами:
-
Если вы хотите возвращать значение указанной ячейки или массива ячеек, см. раздел Форма массива.
-
Если требуется возвращать ссылку на указанные ячейки, см. раздел Ссылочная форма.
Форма массива
Описание
Возвращает значение элемента в таблице или массиве, выбранное по индексам номеров строк и столбцов.
Если первый аргумент функции ИНДЕКС является константной массива, используйте форму массива.
Синтаксис
ИНДЕКС(массив; номер_строки; [номер_столбца])
Форма массива функции INDEX имеет следующие аргументы:
-
массив. Обязательный аргумент. Диапазон ячеек или константа массива.
-
Если массив содержит только одну строку или столбец, соответствующий аргумент номер_строки или номер_столбца является необязательным.
-
Если массив содержит более одной строки и более одного столбца и используется только номер_строки или номер_столбца, ИНДЕКС возвращает массив всей строки или столбца в массиве.
-
-
Номер_строки Обязательный, если column_num отсутствует. Выбирает строку в массиве, из которой требуется возвратить значение. Если номер_строки опущен, требуется номер_столбца.
-
Номер_столбца — необязательный аргумент. Выбирает столбец в массиве, из которого требуется возвратить значение. Если номер_столбца опущен, требуется номер_строки.
Замечания
-
Если используются аргументы номер_строки и номер_столбца, функция ИНДЕКС возвращает значение в ячейке на пересечении номеров_строки и номера_столбца.
-
row_num и column_num должны указывать на ячейку в массиве; в противном случае ИНДЕКС возвращает #ССЫЛКА! ошибку «#ЗНАЧ!».
-
Если задать для row_num или column_num значение 0 (ноль), ИНДЕКС возвращает массив значений для всего столбца или строки соответственно. Чтобы использовать значения, возвращаемые в виде массива, введите функцию ИНДЕКС как формулу массива.
Примечание: Если у вас есть текущая версия Microsoft 365, вы можете ввести формулу в верхнюю левую ячейку выходного диапазона, а затем нажать клавишу ВВОД, чтобы подтвердить формулу как формулу динамического массива. В противном случае формулу необходимо ввести как устаревшую формулу массива, сначала выбрав выходной диапазон, введите формулу в верхнюю левую ячейку выходного диапазона, а затем нажмите CTRL+SHIFT+ENTER для подтверждения. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
Примеры
Пример 1
В этих примерах функция ИНДЕКС используется для поиска значения ячейки, находящейся на пересечении заданных строки и столбца.
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — ВВОД.
Данные |
Данные |
|
---|---|---|
Яблоки |
Лимоны |
|
Бананы |
Груши |
|
Формула |
Описание |
Результат |
=ИНДЕКС(A2:B3;2;2) |
Значение ячейки на пересечении второй строки и второго столбца в диапазоне A2:B3. |
Груши |
=ИНДЕКС(A2:B3;2;1) |
Значение ячейки на пересечении второй строки и первого столбца в диапазоне A2:B3. |
Бананы |
Пример 2
В этом примере функция ИНДЕКС используется в формуле массива для поиска значений двух заданных ячеек в массиве с диапазоном 2 x 2.
Примечание: Если у вас есть текущая версия Microsoft 365, вы можете ввести формулу в верхнюю левую ячейку выходного диапазона, а затем нажать клавишу ВВОД, чтобы подтвердить формулу как формулу динамического массива. В противном случае формулу необходимо ввести как устаревшую формулу массива, сначала выбрав две пустые ячейки, введите формулу в верхнюю левую ячейку выходного диапазона, а затем нажмите CTRL+SHIFT+ENTER для подтверждения. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
Формула |
Описание |
Результат |
---|---|---|
=ИНДЕКС({1;2:3;4};0;2) |
Значение ячейки на пересечении первой строки и второго столбца в массиве. Массив содержит значения 1 и 2 в первой строке и значения 3 и 4 во второй строке. |
2 |
Значение ячейки на пересечении второй строки и второго столбца в массиве, указанном выше. |
4 |
|
К началу страницы
Справочная форма
Описание
Возвращает ссылку на ячейку, расположенную на пересечении указанной строки и указанного столбца. Если ссылка состоит из несмежных выборок, вы можете выбрать выборку для поиска.
Синтаксис
ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области])
Справочная форма функции ИНДЕКС имеет следующие аргументы:
-
ссылка — обязательный аргумент. Ссылка на один или несколько диапазонов ячеек.
-
Если вы вводите несмежный диапазон для ссылки, заключите ссылку в круглые скобки.
-
Если каждая область в ссылке содержит только одну строку или столбец, аргумент номер_строки или номер_столбца соответственно является необязательным. Например, для ссылки на единственную строку нужно использовать формулу ИНДЕКС(ссылка,,номер_столбца).
-
-
Номер_строки Обязательный аргумент. Номер строки в диапазоне, заданном аргументом «ссылка», из которого требуется возвратить ссылку.
-
Номер_столбца — необязательный аргумент. Номер столбца в диапазоне, заданном аргументом «ссылка», из которого требуется возвратить ссылку.
-
area_num Необязательный. Выбирает диапазон в ссылке, из которого возвращается пересечение row_num и column_num. Первая выбранная или введенная область имеет номер 1, вторая — 2 и так далее. Если номер_области опущен, ИНДЕКС использует область 1. Перечисленные здесь области должны располагаться на одном листе. Если вы укажете области, которые не находятся на одном листе друг с другом, это вызовет ошибку #ЗНАЧ! ошибку «#ВЫЧИС!». Если вам нужно использовать диапазоны, расположенные на разных листах друг от друга, рекомендуется использовать форму массива функции ИНДЕКС, а для вычисления диапазона, из которого состоит массив, использовать другую функцию. Например, вы можете использовать функцию ВЫБОР, чтобы вычислить, какой диапазон будет использоваться.
Например, если ссылка описывает ячейки (A1:B4,D1:E4,G1:H4), номер_области 1 – это диапазон A1:B4, номер_области 2 – это диапазон D1:E4, а номер_области 3 – диапазон G1:H4.
Замечания
-
После того, как ссылка и area_num выбрали конкретный диапазон, row_num и column_num выбирают конкретную ячейку: row_num 1 — это первая строка в диапазоне, column_num 1 — это первый столбец и так далее. Ссылка, возвращаемая INDEX, представляет собой пересечение row_num и column_num.
-
Если вы установите номер_строки или номер_столбца равным 0 (ноль), ИНДЕКС возвращает ссылку для всего столбца или строки соответственно.
-
row_num, column_num и area_num должны указывать на ячейку в пределах ссылки; в противном случае ИНДЕКС возвращает #ССЫЛКА! ошибку «#ЗНАЧ!». Если номер_строки и номер_столбца опущены, ИНДЕКС возвращает область в ссылке, указанную номером_области.
-
Результатом вычисления функции ИНДЕКС является ссылка, которая интерпретируется в качестве таковой другими функциями. В зависимости от формулы значение, возвращаемое функцией ИНДЕКС, может использоваться как ссылка или как значение. Например, формула ЯЧЕЙКА(«ширина»;ИНДЕКС(A1:B2;1;2)) эквивалентна формуле ЯЧЕЙКА(«ширина»;B1). Функция ЯЧЕЙКА использует значение, возвращаемое функцией ИНДЕКС, как ссылку. С другой стороны, такая формула, как 2*ИНДЕКС(A1:B2;1;2), преобразует значение, возвращаемое функцией ИНДЕКС, в число в ячейке B1.
Примеры
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу Enter.
Фрукты |
Цена |
Количество |
---|---|---|
Яблоки |
0,69 ₽ |
40 |
Бананы |
0,34 ₽ |
38 |
Лимоны |
0,55 ₽ |
15 |
Апельсины |
0,25 ₽ |
25 |
Груши |
0,59 ₽ |
40 |
Миндаль |
2,80 ₽ |
10 |
Кешью |
3,55 ₽ |
16 |
Арахис |
1,25 ₽ |
20 |
Грецкие орехи |
1,75 ₽ |
12 |
Формула |
Описание |
Результат |
=ИНДЕКС(A2:C6;2;3) |
Пересечение второй строки и третьего столбца в диапазоне A2:C6, т. е. содержимое ячейки C3. |
38 |
=ИНДЕКС((A1:C6;A8:C11);2;2;2) |
Пересечение второй строки и второго столбца во второй области (A8:C11), т. е. содержимое ячейки B9. |
1,25 |
=СУММ(ИНДЕКС(A1:C11;0;3;1)) |
Сумма третьего столбца в первой области диапазона (A1:C11) является суммой диапазона C1:C11. |
216 |
=СУММ(B2:ИНДЕКС(A2:C6;5;2)) |
Сумма значений из диапазона, начинающегося с ячейки B2 и заканчивающегося пересечением пятой строки и второго столбца диапазона A2:A6, т. е. сумма значений из диапазона B2:B6. |
2,42 |
К началу страницы
См. также
Функция ВПР
ПОИСКПОЗ
Функция ДВССЫЛ
Использование формул массива: рекомендации и примеры
Функции ссылки и поиска (справка)
Skip to content
В этом руководстве вы найдете ряд примеров формул, демонстрирующих наиболее эффективное использование ИНДЕКС в Excel.
Из всех функций Excel, возможности которых часто недооцениваются и используются недостаточно, ИНДЕКС определенно занимает место в первой десятке. Между тем, эта функция умна, гибка и универсальна.
Итак, что такое функция ИНДЕКС в Excel? По сути, формула ИНДЕКС (в английской версии – INDEX) возвращает ссылку на ячейку из заданного массива или диапазона. Другими словами, вы используете её, когда знаете (или можете определить) положение элемента в диапазоне и хотите затем получить значение этого элемента.
- Синтаксис и способы использования
- Получение N-го элемента из списка
- Получение всех значений в строке или столбце
- Использование ИНДЕКС с другими функциями (СУММ, СРЗНАЧ, МАКС, МИН)
- Формула ИНДЕКС для создания динамических диапазонов и раскрывающихся списков
- Мощный поиск с ИНДЕКС/ПОИСКПОЗ
- Формула ИНДЕКС для получения одного диапазона из списка диапазонов
Если вы оцените реальный потенциал функции ИНДЕКС, это может кардинально изменить способы расчета, анализа и представления данных в ваших таблицах.
Функция ИНДЕКС в Excel — синтаксис и основные способы использования
В Excel есть две версии функции ИНДЕКС — форма массива и форма ссылки. Обе их можно использовать во всех версиях Microsoft Excel 365, 2019, 2016, 2013, 2010, 2007 и 2003.
Форма массива ИНДЕКС
В данном случае функция ИНДЕКС возвращает значение элемента в таблице или массиве на основе указанных вами номеров строк и столбцов.
ИНДЕКС(массив,номер_строки,[номер_столбца])
- массив — это диапазон ячеек, именованный диапазон или таблица.
- Номер_строки — это номер строки в массиве, из которого нужно вернуть значение. Если этот аргумент опущен, требуется следующий – номер_столбца.
- Номер_столбца — это номер столбца, из которого нужно вернуть значение. Если он опущен, требуется номер_строки.
Например, формула =ИНДЕКС(C2:F11;4;3) возвращает значение на пересечении четвертой строки и третьего столбца в диапазоне C2:F11, что является значением в ячейке D4.
Чтобы получить представление о том, как формула ИНДЕКС работает с реальными данными, взгляните на следующий пример:
Вместо того, чтобы вводить в формулу номера строк и столбцов, вы можете указать ссылки на ячейки, чтобы получить более универсальную формулу:
=ИНДЕКС(C2:F11;I1;I2)
Итак, эта формула ИНДЕКС возвращает количество товаров точно на пересечении номера товара, указанного в ячейке I1 (номер_строки), и номера недели, введенного в ячейке I2 (номер_столбца).
Примечание. Использование абсолютных ссылок ($C$2:$F$11) вместо относительных ссылок (C2:F11) в аргументе массива упрощает копирование формулы в другие ячейки. Кроме того, вы можете преобразовать диапазон в таблицу (Ctrl + Т
) и обращаться к нему по имени таблицы.
Что нужно помнить
- Если аргумент массива состоит только из одной строки или столбца, вы можете указать или не указать соответствующий аргумент номер_строки или номер_столбца.
- Если аргумент массива включает более одной строки, а номер_строки опущен или равен 0, функция ИНДЕКС возвращает массив всего столбца. Точно так же, если массив включает более одного столбца, а аргумент номер_столбца опущен или равен 0, формула ИНДЕКС возвращает всю строку. Вот пример формулы, демонстрирующий такое поведение.
- Аргументы номер_строки и номер_столбца должны ссылаться на ячейку в массиве; в противном случае формула ИНДЕКС вернет ошибку #ССЫЛКА!.
Форма ИНДЕКС в виде ссылки
Ссылочная форма функции ИНДЕКС Excel возвращает ссылку на ячейку на пересечении указанной строки и столбца.
ИНДЕКС(ссылка, номер_строки, [номер_столбца], [номер_области] )
- ссылка — это один или несколько диапазонов.
Если вы вводите более одного диапазона, разделите диапазоны точкой с запятой и заключите аргумент ссылки в круглые скобки, например (A1:B5; D1:F5).
Если каждый диапазон в ссылке содержит только одну строку или столбец, соответствующий аргумент номер_строки или номер_столбца является необязательным.
- номер_строки – порядковый номер строки в диапазоне, из которого возвращается ссылка на ячейку, аналогично форме массива.
- номер_столбца — порядковый номер столбца, из которого возвращается ссылка на ячейку, также работает аналогично форме массива.
- номер_области — необязательный параметр, указывающий, какой диапазон из ссылочного аргумента использовать. Если он не указан, формула ИНДЕКС вернет результат для первого диапазона, указанного в ссылке.
Например, формула =ИНДЕКС((B2:F4;B8:F11);3;2;2) возвращает значение ячейки С10, которая находится на пересечении 3-й строки и 2-го столбца во второй области (B8:F11).
Что нужно помнить о функции ИНДЕКС в форме ссылки
- Если аргумент номер_строки или номер_столбца равен нулю (0), формула ИНДЕКС возвращает ссылку для всего столбца или строки соответственно.
- Если и номер_строки, и номер_столбца опущены, функция ИНДЕКС возвращает область, указанную в аргументе номер_области.
- Все аргументы (номер_строки, номер_столбца и номер_области) должны ссылаться на ячейку в пределах заданного диапазона. В противном случае формула ИНДЕКС вернет ошибку #ССЫЛКА!
Обе формулы ИНДЕКС, которые мы обсуждали до сих пор, очень просты и служат только для иллюстрации. Ваши реальные формулы, вероятно, будут намного сложнее. Поэтому давайте рассмотрим несколько наиболее эффективных способов использования ИНДЕКС в Excel.
Как использовать функцию ИНДЕКС в Excel — примеры формул
Возможно, сама по себе функция ИНДЕКС в Excel не имеет большого практического применения, но в сочетании с другими функциями, такими как ПОИСКПОЗ или СЧËТ, она может создавать очень мощные формулы.
Далее во всех наших формулах ИНДЕКС (кроме последней) мы будем использовать приведенные ниже данные.
1. Получение N-го элемента из списка
Это основное использование функции ИНДЕКС и простейшая её формула. Чтобы получить определенный элемент из списка, вы просто пишете: =ИНДЕКС(диапазон; n), где диапазон — это диапазон ячеек или именованный диапазон, а n — позиция элемента, который вы хотите из него получить.
Чтобы получить значение ячейки на пересечении определенной строки и столбца, вы используете тот же подход с той лишь разницей, что вы указываете и номер строки, и номер столбца. На самом деле, вы уже видели такую формулу в действии, когда мы обсуждали форму массива функции ИНДЕКС .
И вот еще один пример. В нашем образце таблицы, чтобы найти четвертую по величине планету в Солнечной системе, вы сортируете таблицу по столбцу Диаметр и используете следующую формулу ИНДЕКС:
=ИНДЕКС(A5:E13;4;1)
- A5:E13 — это ссылка на диапазон с данными.
- Номер_строки равен 4, потому что вы ищете четвертый элемент в списке,
- Номер_столбца равен 1, потому что мы хотим извлечь имя планеты.
Естественно, вы можете использовать ссылку на ячейку в аргументах номер_строки и/или номер_столбца, чтобы сделать вашу формулу более универсальной, как показано на скриншоте ниже:
Кроме того, вы можете не сортировать таблицу вручную, а сделать это при помощи формулы.
=ИНДЕКС(СОРТ(A5:E13;3;-1);B1;1)
Функция СОРТ сортирует таблицу по третьему столбцу в порядке убывания. Ну а затем ИНДЕКС делает всё остальное.
2. Получение всех значений в строке или столбце
Помимо извлечения одной ячейки, функция ИНДЕКС может возвращать массив значений из всей строки или столбца . Чтобы получить все значения из определенного столбца, вы должны опустить аргумент номер_строки или установить его равным 0. Аналогичным образом, чтобы получить всю строку, вы передаете пустое значение или 0 в номер_столбца.
Такие формулы ИНДЕКС вряд ли можно использовать сами по себе, потому что Excel не может уместить массив значений, возвращаемых формулой, в одну ячейку, и вы получите ошибку #ЗНАЧ!. Однако, если вы используете ИНДЕКС в сочетании с другими функциями, такими как СУММ или СРЗНАЧ, вы получите отличные результаты.
Например, вы можете использовать следующую формулу для расчета средней температуры планет в Солнечной системе:
=СРЗНАЧ(ИНДЕКС(A4:E12;;4))
В приведенной выше формуле аргумент номер_столбца равен 4, потому что температура находится в четвертом столбце нашей таблицы. Параметр номер_строки опущен.
Аналогичным образом можно найти минимальную и максимальную температуры:
=МИН(ИНДЕКС(A4:E12;;4))
=МАКС(ИНДЕКС(A4:E12;;4))
И посчитаем общую массу планет (масса – второй столбец в таблице):
=СУММ(ИНДЕКС(A4:E12;;2))
С практической точки зрения функция ИНДЕКС в приведенной выше формуле лишняя. Вы можете просто написать =СРЗНАЧ(D4:D12) и получить те же результаты.
При работе с реальными данными эта функция может оказаться полезной как часть более сложных формул, которые вы используете для анализа данных.
К примеру, формула =СУММ(ИНДЕКС(A4:E12;;С1)) позволит вам подсчитывать сумму в том столбце, номер которого вы укажете в ячейке C1.
3. Использование ИНДЕКС с другими функциями (СУММ, СРЗНАЧ, МАКС, МИН)
Из предыдущих примеров у вас может сложиться впечатление, что формула ИНДЕКС возвращает значения, но на самом деле она возвращает ссылку на ячейку, содержащую значение. И этот пример демонстрирует, как эту возвращаемую ссылку можно использовать.
Поскольку результат формулы ИНДЕКС является ссылкой, мы можем использовать его в других функциях для создания динамического диапазона. Звучит запутанно? Сейчас поясним.
Предположим, у вас есть формула =СРЗНАЧ(D4:D12), которая возвращает среднее значений в ячейках D4:D12. Вместо того, чтобы писать диапазон непосредственно в формуле, вы можете заменить либо D4, либо D12, либо их оба, функцией ИНДЕКС, например:
=СРЗНАЧ(D4 : ИНДЕКС(D1:D20,12))
Обе приведенные выше формулы дадут один и тот же результат, поскольку функция ИНДЕКС также возвращает ссылку на ячейку В12 (номер строки равен 12, номер столбца опущен). Разница в том, что диапазон формулы СРЗНАЧ / ИНДЕКС является динамическим, и как только вы измените аргумент номер_строки в ИНДЕКС, то диапазон, обрабатываемый функцией СРЗНАЧ, также изменится, и формула вернет другой результат.
По-видимому, такое использование формулы ИНДЕКС кажется слишком сложным и не всегда рациональным и логичным. Но этот подход имеет важное практическое применение, как показано в следующих примерах.
Пример 1. Вычислить среднее значение первых N элементов в списке
Допустим, вы хотите узнать средний диаметр N самых больших планет в солнечной системе.
Количество позиций, которые мы будем использовать для расчета, указываем в ячейке В1.
Затем вы сортируете таблицу по столбцу диаметра от наибольшего к наименьшему и используете следующую формулу расчёта среднего значения:
=СРЗНАЧ(C5:ИНДЕКС(C5:C13;B1))
Как видите, количество значений для расчета среднего мы можем выбирать, не корректируя саму формулу
Пример 2. Сумма элементов между указанными двумя элементами
Если вы хотите определить элементы верхней и нижней границы в своей формуле, вам просто нужно использовать две функции ИНДЕКС, чтобы вернуть первый и последний элемент, которые вам нужны.
Например, следующая формула при помощи функции СУММ возвращает сумму значений в столбце Масса между двумя элементами, указанными в ячейках B1 и Е1:
=СУММ(ИНДЕКС(B5:B13;B1):ИНДЕКС(B5:B13;E1))
4. Формула ИНДЕКС для создания динамических диапазонов и раскрывающихся списков
Как это часто бывает, когда вы начинаете упорядочивать данные на листе, вы можете не знать, сколько записей у вас в конечном итоге будет. Это не относится к нашей таблице планет, которая кажется полной, но кто знает…
В любом случае, если у вас есть изменяющееся количество элементов в данном столбце, скажем, от A1 до An , вы можете создать динамический именованный диапазон , включающий все ячейки с данными. При этом вы хотите, чтобы диапазон корректировался автоматически по мере добавления новых элементов или удаления некоторых из существующих. Например, если у вас сейчас 10 элементов, ваш именованный диапазон будет A1:A10. Если вы добавите новую запись, именованный диапазон автоматически расширится до A1:A11, а если вы передумаете и удалите эти вновь добавленные данные, диапазон автоматически вернется к A1:A10.
Основное преимущество этого подхода заключается в том, что вам не нужно постоянно обновлять все формулы в книге, чтобы убедиться, что они относятся к правильным диапазонам.
Одним из способов определения динамического диапазона является использование функции Excel СМЕЩ :
=СМЕЩ($A$2; 0; 0; СЧЁТЗ($A1:$A100)-1; 1)
Другим возможным решением является использование ИНДЕКС Excel вместе с СЧËТЗ:
=$A$2:ИНДЕКС($A2:$A100; СЧЁТЗ($A2:$A100))
В обеих формулах A2 — это ячейка, содержащая первый элемент списка. Динамический диапазон, создаваемый обеими формулами, будет идентичным.
Разница заключается в подходах. В то время как функция СМЕЩ перемещается от начальной точки на определенное количество строк и/или столбцов, то ИНДЕКС находит ячейку на пересечении определенной строки и столбца. Функция СЧËТЗ, используемая в обеих формулах, получает количество непустых ячеек в интересующем нас столбце.
В этом примере в столбце A 9 непустых ячеек, поэтому СЧËТЗ возвращает 9. Следовательно, ИНДЕКС возвращает $A$9, то есть последнюю использованную ячейку в столбце A (обычно ИНДЕКС возвращает значение, но в этой формуле оператор ссылки (:) заставляет его вернуть ссылку). И поскольку $A$1 является нашей отправной точкой, конечным результатом формулы будет диапазон $A$1:$A$9.
На следующем рисунке показано, как можно использовать такую формулу ИНДЕКС для создания динамического выпадающего списка.
Примечание. Самый простой способ создать динамически обновляемый выпадающий список — сделать именованный список на основе таблицы Excel. В этом случае вам не понадобятся сложные формулы, поскольку таблицы Excel сами по себе являются динамическими диапазонами.
Вы также можете использовать функцию ИНДЕКС для создания зависимых раскрывающихся списков, и в следующем руководстве объясняются все необходимые шаги: Создание каскадного раскрывающегося списка в Excel .
5. Мощный поиск с ИНДЕКС/ПОИСКПОЗ
Выполнение вертикального поиска — вот где функция ИНДЕКС действительно великолепна. Если вы когда-либо пробовали использовать функцию ВПР Excel , вы хорошо знаете ее многочисленные ограничения, такие как невозможность извлечения значений из столбцов слева от столбца поиска или ограничение в 255 символов для значения поиска.
Связка ИНДЕКС/ПОИСКПОЗ во многих отношениях превосходит ВПР:
- Никаких проблем с «левым» ВПР.
- Нет ограничений на размер искомого значения.
- Сортировка не требуется (ВПР с приблизительным совпадением требует сортировки столбца подстановки в порядке возрастания).
- Вы можете вставлять и удалять столбцы в таблице, не обновляя каждую связанную формулу.
- И последнее, но не менее важное: ИНДЕКС/ПОИСКПОЗ не замедляет работу Excel, как это происходит, если использовать несколько формул ВПР в большой таблице.
Вы используете ИНДЕКС / ПОИСКПОЗ следующим образом:
=ИНДЕКС ( столбец для возврата значения , (ПОИСКПОЗ ( искомое значение , столбец для поиска , 0))
Например, по коду заказа мы можем найти название товара. При этом функция ПОИСКПОЗ ищет совпадение с кодами заказа, а затем передает номер найденной позиции в функцию ИНДЕКС. Та же в свою очередь извлекает соответствующее значение из переданного ей диапазона.
Таким образом организуется так называемый «левый» поиск, когда нужно извлечь значение из столбца, находящегося слева от столбца поиска. Функция ВПР сделать это не может. Более подробно о «левом» поиске читайте в этой статье.
Дополнительные советы и примеры формул см. в руководстве по Excel ИНДЕКС/ПОИСКПОЗ .
6. Формула ИНДЕКС для получения одного диапазона из списка диапазонов
Еще одно умное и эффективное использование функции ИНДЕКС в Excel — это возможность получить один диапазон из списка диапазонов.
Предположим, у вас есть несколько списков (например, сведения о еженедельных продажах). Вы можете рассчитать среднее значение или суммировать значения в любом выбранном диапазоне с помощью одной формулы.
Вы можете использовать следующую формулу индекса для расчета суммы продаж в выбранном диапазоне:
=СУММ(ИНДЕКС((C2:C11;D2:D11;E2:E11;F2:F11);;;I1))
Обратите внимание, что сейчас мы используем функцию ИНДЕКС в виде ссылки. Число в последнем аргументе (номер_области) сообщает формуле, какой именно диапазон выбрать.
На скриншоте ниже для номера диапазона (ячейка I1) установлено значение 2. Поэтому формула вычисляет сумму продаж за вторую неделю. Выбран второй по счёту диапазон в списке – D2:D11.
Чтобы сделать формулу еще более удобной для пользователя, вы можете использовать проверку данных и создать в ячейке I2 выпадающий список с номерами недель, чтобы предотвратить ошибки и опечатки:
Вот несколько основных способов применения формулы ИНДЕКС в Excel.
Я надеюсь, что эти примеры показали вам, как использовать потенциал функции ИНДЕКС в ваших рабочих листах. Спасибо за чтение!
Функция ИНДЕКС помогает извлекать значение из массива данных. Массив может различаться своей структурой, количеством столбцов и строк и даже количество самих массивов может быть больше одного.
Пример работы функции ИНДЕКС в Excel от простого к сложному
Сначала рассмотрим самый простой пример применения. У нас есть несколько городов. Пусть нашей первой задачей будет извлечь пятый по счету город из нашей одномерной базы данных. Синтаксис нашей формулы будет следующий: ИНДЕКС(массив; номер_строки). Начинаем писать формулу (яч. B9). Первый аргумент – это все города B3:C7, а второй – необходимый нам номер ряда, в котором хранится информация, которую мы хотим получить – пятый город:
Функция возвратила значение с второго ряда нашей таблицы. Теперь дополним нашу таблицу информацией о туристах, посетивших город в 2017 году:
Для дальнейшего ознакомления работы функции расширим задачу до двухмерного массива исходных данных.
Функция ИНДЕКС двумерный и многомерный массив
Теперь наш массив двухмерный. Пусть теперешним заданием будет узнать количество туристов в Ливерпуле. В ячейке B19 пишем формулу. Синтаксис тоже видоизменится: ИНДЕКС(массив; номер_строки; номер_столбца), у нас добавится третий аргумент – номер столбца, в котором хранится нужные нам данные:
Аналогично функция работает с трёхмерными массивами, четырёхмерными и так далее. Теперь давайте рассмотрим, как решать задачи, когда таблиц несколько. Пусть у нас будут города трёх стран с количеством посетителей:
На этот раз у нас три двумерные таблицы – три страны с различными городами и их посетителями. Нам необходимо найти количество туристов в городе Ницца страны Франции или, если перефразировать под наш синтаксис, количество посетителей третьего ряда второй колонки второй таблицы. Первым делом, как и раньше, нам нужно выбрать диапазон. НО теперь их у нас три, а значит, все три мы и выбираем, предварительно взяв в скобки эту часть синтаксиса. После чего добавляем уже знакомые нам координаты искомой информации – строку и столбец, а также номер таблицы, которая содержит искомый нами диапазон:
И получаем готовую формулу с решением поставленной задачи:
Пример формулы комбинации функций ИНДЕКС и СУММ
Функцию ИНДЕКC так же можно комбинировать и с другими функциями. Например, наша база данных содержит дополнительно количество туристов Великобритании за 2018-2019 года, мы хотим узнать сумму туристов:
- за 2018 год.
- по городу Манчестер за весь период.
В этом нам поможет известная любому пользователю несложная функция СУММ. Она охватит результат поиска, сделанным ИНДЕКC и выполнит операцию сложения найденных значений. Чтобы выполнить первую задачу, для начала нам нужно выбрать диапазон с одними числами(без столбца с городами, поскольку будем суммировать численные значения C43:E47). Затем на месте, где мы прописывали номер строки, пишем 0. Благодаря этому ИНДЕКC не будет «искать» данные по строкам, а просто перейдет к следующей операции. А следующая операция – прописываем столбец 2 и получаем ответ на первый пункт:
Сумма туристов за 2018 год по пяти городам Великобритании составляет 40 987 людей.
Аналогично этой схеме мы ищем ответ на второй пункт. Только теперь нам нужно считать данные с ряда, поэтому ноль ставим на месте номера столбца:
И получаем ответ на второй пункт – всего посетителей за три года в Манчестере было 2 474 человека.
Для примера зачастую используются самые простые задачи и однотипные решения через функцию. Но в работе объем данных всегда больше и сложнее, поэтому для решения таких заданий используют несколько функций или их сочетание. Несколько таких примеров будем рассматривать дальше.
Формулировку функции можно видоизменять в зависимости от постановки задачи. Пусть нам нужно определить и показать сколько туристов вместе было в 2017-м году в первых трёх городах по списку – Кембридже, Манчестере и Лондоне. Тогда мы снова используем функцию СУММ, но в месте, где указывается конец диапазона значений, по которым мы проводим поиск, вставляем нашу ИНДЕКС. Проще говоря, диапазон для суммирования выглядит так: (начало:конец). Началом будет первая ячейка массива, как обычно, а конец мы заменим. Укажем количество городов, по которым будем считать людей (действие 1). Затем, когда будем составлять функцию ИНДЕКC, укажем, что первый аргумент – числовой диапазон всех пяти городов за 2017-й год, а второй – наше кол-во городов (ячейка D64):
Точно так же можно выполнить следующее задание: найти сумму посетителей Оксфорде за 2017-2018 года. В этом случае делаем всё точно так же, только выбираем горизонтальный диапазон C61:E61 :
В конце необязательно ссылаться на ячейку с написанным количеством искомых значений, можно сразу писать цифру 3 в первом примере и цифру 2 во втором примере, всё будет работать точно так же:
и
идентичны.
Комбинирование нескольких функций могут делать то же, что и одна отдельная функция, но при этом быть менее требовательными к расположению данных, к их размерам или количеству.
Формула ИНДЕКС и ПОИСКПОЗ лучшая замена функции ВПР
Существуют весьма весомые аргументы преимущества использования формулы ИНДЕКС и ПОИСКПОЗ в Excel лучше, чем функция ВПР. Если вы уже знакомы с функцией ВПР, то наверняка знаете, что для её корректной работы искомые данные всегда должны располагаться по правую сторону от критериев:
Получается, что для работы сначала нужно упорядочить столбцы в соответствии с требованиями, а только потом совершать действия. Но иногда сама структура отчета или сводки, с которой нам нужно иметь дело, не позволяет совершать перестановки. Тогда нам очень кстати пригодится ИНДЕКС в сочетании с функцией ПОИСКПОЗ. Синтаксис ИНДЕКСА: (массив; номер_строки; номер_столбца). На первой позиции у нас будет диапазон значений (туристы, 2017), вместо следующих двух пишем ПОИСКПОЗ (искомый критерий;диапазон критериев; 0 (для точного результата)):
Рассмотрим более наглядный и реальный пример, где можно заменить ВПР. У нас есть два отчета: один — о количестве продаж определенного товара, а второй – о цене на упаковку одного товара. И как раз вторая таблица имеет такое расположение столбцов, которое не позволяет использовать нам ВПР – первыми занимают место значения, а вторыми – критерии:
Для того чтобы выполнить заполнение первой таблицы, делаем точно также, как в предыдущем примере – в ячейке D88 пишем ИНДЕКС, первым делом указываем столбец, где находятся искомые значения (цена за упаковку). Затем нужно указать, где нам искать соответствующие критерию значения — подстраиваем ПОИСКПОЗ под наше решение: выбираем искомый критерий (Хепилор), затем массив искомых критериев со второй таблицы:
Теперь просто копируем формулу до конца столбца, но не забываем закрепить ссылки, иначе массив будет спускаться дальше и мы получим некорректные значения. Наша таблица готова:
Если у нас нет данных во второй таблице о цене и препаратах, у нас будет в ячейке ошибка #Н/Д. Теперь к нашим ранее использованным функциям добавим ЕСЛИОШИБКА, которая нам поможет изменить внешний вид отчета, сделать его более понятным для читателя. Опять же, поскольку у нас вторая таблица не соответствует требованиям ВПР, на помощь приходит ИНДЕКС+ПОИСКПОЗ. Усложняем уже имеющуюся формулу, добавляя ЕСЛИОШИБКА, указывая, что при отсутствии данных, мы хотим видеть прочерк:
Скачать примеры функции ИНДЕКС и ПОИСКПОЗ в Excel
Таким образом формула из комбинации функций ИНДЕКС и ПОИСПОЗ работают лучше популярной функции ВПР и не имеют никаких ограничений для выборки данных из таблицы даже по нескольким условиям.
Бывает у вас такое: смотришь на человека и думаешь «что за @#$%)(*?» А потом при близком знакомстве оказывается, что он знает пять языков, прыгает с парашютом, имеет семеро детей и черный пояс в шахматах, да и, вообще, добрейшей души человек и умница?
Так и в Microsoft Excel: есть несколько похожих функций, про которых фраза «внешность обманчива» работает на 100%. Одна из наиболее многогранных и полезных — функция ИНДЕКС (INDEX). Далеко не все пользователи Excel про нее знают, и еще меньше используют все её возможности. Давайте разберем варианты ее применения, ибо их аж целых пять.
Вариант 1. Извлечение данных из столбца по номеру ячейки
Самый простой случай использования функции ИНДЕКС – это ситуация, когда нам нужно извлечь данные из одномерного диапазона-столбца, если мы знаем порядковый номер ячейки. Синтаксис в этом случае будет:
=ИНДЕКС(Диапазон_столбец; Порядковый_номер_ячейки)
Этот вариант известен большинству продвинутых пользователей Excel. В таком виде функция ИНДЕКС часто используется в связке с функцией ПОИСКПОЗ (MATCH), которая выдает номер искомого значения в диапазоне. Таким образом, эта пара заменяет легендарную ВПР (VLOOKUP):
… но, в отличие от ВПР, могут извлекать значения левее поискового столбца и номер столбца-результата высчитывать не нужно.
Вариант 2. Извлечение данных из двумерного диапазона
Если диапазон двумерный, т.е. состоит из нескольких строк и столбцов, то наша функция будет использоваться немного в другом формате:
=ИНДЕКС(Диапазон; Номер_строки; Номер_столбца)
Т.е. функция извлекает значение из ячейки диапазона с пересечения строки и столбца с заданными номерами.
Легко сообразить, что с помощью такой вариации ИНДЕКС и двух функций ПОИСКПОЗ можно легко реализовать двумерный поиск:
Вариант 3. Несколько таблиц
Если таблица не одна, а их несколько, то функция ИНДЕКС может извлечь данные из нужной строки и столбца именно заданной таблицы. В этом случае используется следующий синтаксис:
=ИНДЕКС((Диапазон1;Диапазон2;Диапазон3); Номер_строки; Номер_столбца; Номер_диапазона)
Обратите особое внимание, что в этом случае первый аргумент – список диапазонов — заключается в скобки, а сами диапазоны перечисляются через точку с запятой.
Вариант 4. Ссылка на столбец / строку
Если во втором варианте использования функции ИНДЕКС номер строки или столбца задать равным нулю (или просто не указать), то функция будет выдавать уже не значение, а ссылку на диапазон-столбец или диапазон-строку соответственно:
Обратите внимание, что поскольку ИНДЕКС выдает в этом варианте не конкретное значение ячейки, а ссылку на диапазон, то для подсчета потребуется заключить ее в дополнительную функцию, например СУММ (SUM), СРЗНАЧ (AVERAGE) и т.п.
Вариант 5. Ссылка на ячейку
Общеизвестно, что стандартная ссылка на любой диапазон ячеек в Excel выглядит как Начало-Двоеточие-Конец, например A2:B5. Хитрость в том, что если взять функцию ИНДЕКС в первом или втором варианте и подставить ее после двоеточия, то наша функция будет выдавать уже не значение, а адрес, и на выходе мы получим полноценную ссылку на диапазон от начальной ячейки до той, которую нашла ИНДЕКС:
Нечто похожее можно реализовать функцией СМЕЩ (OFFSET), но она, в отличие от ИНДЕКС, является волатильной, т.е. пересчитывается каждый раз при изменении любой ячейки листа. ИНДЕКС же работает более тонко и запускает пересчет только при изменении своих аргументов, что ощутимо ускоряет расчет в тяжелых книгах по сравнению со СМЕЩ.
Один из весьма распространенных на практике сценариев применения ИНДЕКС в таком варианте — это сочетание с функцией СЧЁТЗ (COUNTA), чтобы получить автоматически растягивающиеся диапазоны для выпадающих списков, сводных таблиц и т.д.
Ссылки по теме
- Трехмерный поиск данных по нескольким листам (ВПР 3D)
- Поиск и подстановка по нескольким условиям (ВПР по нескольким столбцам)
- Подстановка данных из одной таблицы в другую с помощью функции ВПР (VLOOKUP)
Табличный процессор имеет обширное количество функций, которые позволяют пользователю проводить различные виды обработки информации. Функция ИНДЕКС помогает реализовывать поиск значений в обозначенной локации заданного диапазона, а затем осуществляет вывод результата в выделенном секторе. В статье будет подробно рассмотрено, как применять функцию ИНДЕКС разнообразными методами.
Содержание
- Описание функции ИНДЕКС
- Что возвращает функция
- Синтаксис
- Аргументы функции
- Дополнительная информация
- Как работает функция ИНДЕКС в Excel?
- Функция ИНДЕКС в Excel пошаговая инструкция
- Функция ИНДЕКС для массивов
- Функция ИНДЕКС для ссылок
- Использование с оператором СУММ
- Сочетание с функцией ПОИСКПОЗ
- Обработка нескольких таблиц
- Примеры использования функции ИНДЕКС в Excel
- Ошибки
- Заключение
Описание функции ИНДЕКС
ИНДЕКС – интегрированная в табличный процессор функция, которая позволяет получить информацию из таблицы при том условии, что пользователь знает номер строчки и столбика, в котором располагается эта информация.
Что возвращает функция
Данная функция осуществляет возвращение значений из определенной строчки и столбика таблицы.
Синтаксис
Существует четыре вариации синтаксиса этой функции. Две русские версии:
- =ИНДЕКС(массив; номер_строки; [номер_столбца]).
- =ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области]).
Две английские версии:
- =INDEX (array, row_num, [col_num]).
- =INDEX (array, row_num, [col_num], [area_num]).
Аргументы функции
Разберемся более подробно, что означает каждый из приведенных ниже аргументов:
- array – обозначает диапазон секторов или массив данных, по которому будет осуществляться поиск;
- row_num – обозначает номер строчки, где располагаются необходимые значения;
- [col_num] – обозначает номер столбика, где располагаются необходимые значения. Этот параметр является необязательным. В случае, когда в функции ИНДЕКС не описан аргумент номера строчки, этот параметр нужно указывать;
- [area_num] – используется в тех случаях, когда массив имеет некоторое количество диапазонов. Параметр является необязательным и применяется для осуществления выбора абсолютно всех диапазонов.
Дополнительная информация
Рассмотрим некоторые особенности функции, которые необходимо знать при ее использовании:
- Когда номер столбика или строчки равен нулю, функция осуществит возврат данных всего столбика или строчки.
- В случае применения функции ИНДЕКС перед ссылкой на ячейку произойдет возврат ссылки на ячейку вместо значения. Более подробно об этом поговорим в примерах, расположенных ниже.
- Обычно функция ИНДЕКС применяется вместе с функцией ПОИСКПОЗ.
- Функция ИНДЕКС отличается от функции ВПР тем, что она осуществляет возврат данных как слева от нужного показателя, так и справа.
- ИНДЕКС можно применять в 2-х различных видах: «Ссылки на данные» и «Массив данных».
- «Массив» применяется в тех случаях, когда необходимо отыскать показатели, основанные на определенных номерах столбиков и строчек табличной информации.
- «Ссылки на данные» применяются в тех случаях, когда необходимо отыскать показатели в некотором количестве таблиц, чтобы выбрать табличку, а затем помочь функции осуществить поиск по номеру столбца и строки.
Как работает функция ИНДЕКС в Excel?
Рассмотрим процесс работы функции ИНДЕКС с различными типами данных в табличном процессоре.
Функция ИНДЕКС в Excel пошаговая инструкция
Пошаговая инструкция для работы с функцией ИНДЕКС имеет различный вид в зависимости от того, для чего она применяется. Ее можно использовать для работы с массивами, ссылками и другими вспомогательными операторами.
Функция ИНДЕКС для массивов
К примеру, есть табличка с названиями продукции, ее стоимостью, числом и конечной суммой.
Цель: в выделенном секторе показать название пятой в списке позиции. Пошаговая инструкция выглядит так:
- Кликаем на сектор, в который желаем в дальнейшем вывести результат манипуляций. Щелкаем кнопку «Вставить функцию», располагающуюся рядом со строкой для ввода формул.
- На дисплее открылось окошко под названием «Вставка функции». Раскрываем список, находящийся рядом с надписью «Категория:», и жмем «Ссылки и массивы». Далее в окошке с перечнем функций выбираем «ИНДЕКС». После проведения всех действий щелкаем на кнопочку «ОК».
- На экране появилось маленькое окошко, предлагающее выбрать набор аргументов. Выбираем 1-й предложенный вариант и нажимаем «ОК».
- В следующем окошке необходимо указать аргументы. В поле «Массив» вводим диапазон, в рамках которого будет осуществляться работа функции. Координаты можно вписать самостоятельно или же путем выделения необходимой области на рабочем листе при помощи зажатой ЛКМ.
- В поле «Номер_строки» вбиваем число 5, так как этого требует поставленная перед нами задача.
- В поле «Номер_столбца» вбиваем цифру 1, так как названия значений располагаются в 1-м столбике массива.
- После проведения всех настроек жмем «ОК».
- В выбранном секторе появился итоговый результат.
Обратите внимание! Один из аргументов можно не заполнять в случае, если массив является одномерным.
Такие действия выглядят следующим образом:
- В строке «Массив» необходимо выделить только ячейки первого столбика. Вводим номер строки – 5, а номер столбика не заполняем, потому что массив является одномерным.
- Щелкаем на «ОК». В итоге, в выделенном секторе получаем аналогичный результат.
Функция ИНДЕКС для ссылок
Функция ИНДЕКС может осуществлять свою работу сразу с некоторым количеством таблиц. Для реализации этого действия необходим перечень значений для ссылок с полем «Номер_области». К примеру, мы имеем четыре таблички. В них располагаются данные по продажам за различный промежуток времени.
Цель: выявить количество продаж в 4-й позиции за 2-й квартал в штуках. Пошаговое руководство выглядит следующим образом:
- Кликаем на сектор, в который желаем в дальнейшем вывести результат манипуляций. Щелкаем кнопку «Вставить функцию», располагающуюся рядом со строчкой для ввода формул.
- На дисплее открылось окно под названием «Вставка функции». Раскрываем список, находящийся рядом с надписью «Категория:», и жмем «Ссылки и массивы». Далее в окне с перечнем функций выбираем «ИНДЕКС». После проведения всех действий нажимаем «ОК».
- На экране появилось маленькое окошко, предлагающее выбрать набор аргументов. Выбираем второй предложенный вариант и нажимаем «ОК».
- В следующем окошке необходимо указать аргументы. В поле «Ссылка» вводим те же значения, которые вводили в поле «Массив» в предыдущем примере. Главное отличие – указываем не один диапазон, а сразу четыре, разделяя их знаком «;». После описания необходимо поставить «(» в начале и «)» в конце.
- В поле «Номер_строки» вводим значение 4, согласно условию нашей задачи.
- В строчку «Номер_столбца» вводим значение 3, потому что нам необходимо выяснить количество продаж в штуках.
- В строку «Номер области» вводим значение 2, потому как по условию задачи нам необходимо узнать информацию по второму кварталу.
- После проведения всех манипуляций щелкаем на кнопку «ОК». Готово, выбранном секторе появился необходимый нам ответ.
Использование с оператором СУММ
Функцию ИНДЕКС часто применяют совместно с оператором СУММ. Общий вид оператора: =СУММ(Адрес_массива). Применив СУММ, к рассматриваемой нами табличке, мы сможем получить итоговую сумму. Формула для подсчета суммы будет выглядеть следующим образом: =СУММ(D2:D9).
Можно немного отредактировать формулу, встроив в нее функцию ИНДЕКС. Пошаговое руководство выглядит следующим образом:
- Для первого аргумента оператора СУММ выставляем координаты сектора, являющегося точкой начала суммирующего диапазона.
- 2-й аргумент задается при помощи функции ИНДЕКС. Кликаем на строчку для ввода формул и вбиваем следующее значение: =СУММ(D2:ИНДЕКС(D2:D9;8)). Число 8 говорит о том, что мы выставляем ограничение для выбранного диапазона между секторами D2 и D9.
- Жмем на клавишу «Enter», чтобы вывести конечный результат в выделенном изначально секторе.
Сочетание с функцией ПОИСКПОЗ
Переходим к разбору более сложных задач. Ниже будет рассмотрен пример использования функции ИНДЕКС с оператором ПОИСКПОЗ. ПОИСКПОЗ позволяет осуществить возврат указанного показателя в выделенном диапазоне секторов. Общий вид формулы: =ПОИСКПОЗ(Искомое_значение,Просматриваемый_массив,[Тип_сопоставления]). Разберем каждый показатель функции более подробно:
- Искомое значение. Этот аргумент указывает значение, которое нужно отыскать в выделенной области.
- Просматриваемый массив. Область секторов для поиска искомого показателя.
- Тип сопоставления. Аргумент не является обязательным и применяется для более точного поиска.
Для наглядности использования двух функций разберем все на конкретных примерах. Возьмем ту же таблицу, которую мы рассматривали в предыдущих примерах. Около нее располагается маленькая табличка, в которой находится по одному пустому значению для названия и цены. Цель: применяя ПОИСКПОЗ и ИНДЕКС, реализовать добавление в сектор G2 функции, выводящей определенное значение в зависимости от указанного в секторе названия. Пошаговое руководство выглядит так:
- Первоначально заполняем ячейку F1.
- Кликаем на сектор, в который желаем в дальнейшем вывести результат манипуляций. Щелкаем кнопку «Вставить функцию», располагающуюся рядом со строкой для ввода формул.
- На дисплее открылось окно под названием «Вставка функции». Раскрываем список, находящийся рядом с надписью «Категория:», и жмем «Ссылки и массивы». Далее в окошке с перечнем функций выбираем «ИНДЕКС». После проведения всех действий щелкаем на «ОК».
- На экране появилось маленькое окошко, предлагающее выбрать набор аргументов. Выбираем первый предложенный вариант и нажимаем «ОК».
- В строку «Массив» вводим сектор столбика, в котором располагается стоимость позиций.
- В строчку «Номер_строки» добавляем функцию ПОИСКПОЗ. Для реализации данного действия нажимаем на маленькую стрелочку, находящуюся около элемента «Вставить функцию». Раскрылся список, где нужно выбрать «Другие функции». Появилось новое окошко «Мастер функций», в котором нажимаем «Ссылки и массивы», а затем выбираем ПОИСКПОЗ. После проведения всех манипуляций жмем «ОК».
- В поле «Искомое_значение» вводим координаты ячейки, по наполнению которой будет осуществляться поиск в главном массиве. В поле «Просматриваемый_массив» вбиваем диапазон для поиска искомого показателя. Вводим 0 в поле «Тип_сопоставления».
- В строке для ввода формул необходимо кликнуть на «ИНДЕКС».
- На экране в очередной раз отобразился перечень аргументов. Замечаем, что показатели автоматом заполнились необходимыми данными. Ничего не трогаем и кликаем на «ОК». Стоит заметить, что поле «Номер_строки» можно самостоятельно заполнить, используя синтаксис оператора ПОИСКПОЗ.
- В итоге мы получили в выделенном секторе необходимый результат – стоимость позиции. Различные изменения стоимости в главной таблице будут отражаться в этой ячейке. Это же правило работает и с изменением наименования во вспомогательной табличке.
Обработка нескольких таблиц
Рассмотри процесс обработки нескольких таблиц. К примеру, у нас есть 3 таблички. В них отображается зарплата сотрудников по месяцам. Цель: выявить зарплату второго сотрудника за 3-й месяц. Пошаговое руководство выглядит следующим образом:
- Кликаем на ячейку, в которую желаем в дальнейшем вывести результат манипуляций. Щелкаем кнопку «Вставить функцию», располагающуюся рядом со строкой для ввода формул.
- На дисплее открылось окошко под названием «Вставка функции». Раскрываем список, находящийся рядом с надписью «Категория:», и нажимаем «Ссылки и массивы». Далее в окошке с перечнем функций выбираем «ИНДЕКС». После проведения всех действий щелкаем на кнопку «ОК».
- На экране появилось маленькое окошко, предлагающее выбрать набор аргументов. Выбираем 2-й предложенный вариант и нажимаем «ОК».
- В строку «Ссылка» вводим координаты каждого диапазона. В строчку «Номер строки» вбиваем число 2, потому как мы осуществляем поиск 2-й фамилии в перечне. В строчку «Номер столбца» вводим число 3. В строку «Номер области» тоже вбиваем число 3. После проведения всех манипуляций кликаем на «ОК».
- В выбранный заранее сектор вывелись необходимые результаты.
Примеры использования функции ИНДЕКС в Excel
Дополнительно разберем еще один пример использования. Например, у нас есть следующая табличная информация:
Чтобы узнать результат Андрея по дисциплине «Физика», необходимо применить следующую формулу: =ИНДЕКС($B$3:$E$9;3;2). Здесь мы произвели определение показателей нужного диапазона: $B$3:$E$9. Цифра 3 означает номер строчки, где располагается результат Андрея. Цифра 2 означает номер столбца, где располагается дисциплина «Физика».
Ошибки
Функция ИНДЕКС выводит ошибку, если один из аргументов выходит за границы диапазона.
Ошибка возникает, если табличный процессор не понимает, какой сектор необходимо вернуть.
Заключение
Фунция ИНДЕКС – эффективный оператор в табличном процессоре Эксель, позволяющий реализовывать огромный перечень разнообразных действий. Изучив работу с этим оператором, можно значительно ускорить процесс работы с большими объемами информации.
Оцените качество статьи. Нам важно ваше мнение:
What to Know
- The INDEX function can be used alone, but nesting the MATCH function inside it creates an advanced lookup.
- This nested function is more flexible than VLOOKUP and can yield results faster.
This article explains how to use the INDEX and MATCH functions together in all versions of Excel, including Excel 2019 and Microsoft 365.
What Are the INDEX and MATCH Functions?
INDEX and MATCH are Excel lookup functions. While they are two entirely separate functions that can be used on their own, they can also be combined to create advanced formulas.
The INDEX function returns a value or the reference to a value from within a particular selection. For example, it could be used to find the value in the second row of a data set, or in the fifth row and third column.
While INDEX could very well be used alone, nesting MATCH in the formula makes it a bit more useful. The MATCH function searches for a specified item in a range of cells and then returns the relative position of the item in the range. For example, it could be used to determine that a specific name is the third item in a list of names.
INDEX and MATCH Syntax & Arguments
This is how both functions need to be written in order for Excel to understand them:
=INDEX(array, row_num, [column_num])
- array is the range of cells that the formula will be using. It can be one or more rows and columns, such as A1:D5. It’s required.
- row_num is the row in the array from which to return a value, such as 2 or 18. It’s required unless column_num is present.
- column_num is the column in the array from which to return a value, such as 1 or 9. It’s optional.
=MATCH(lookup_value, lookup_array, [match_type])
- lookup_value is the value you want to match in lookup_array. It can be a number, text, or logical value that’s typed manually or referred to via a cell reference. This is required.
- lookup_array is the range of cells to look through. It can be a single row or a single column, such as A2:D2 or G1:G45. This is required.
- match_type can be -1, 0, or 1. It specifies how lookup_value is matched with values in lookup_array (see below). 1 is the default value if this argument is omitted.
Which Match Type to Use | |||
---|---|---|---|
Match Type | What It Does | Rule | Example |
1 | Finds the largest value that’s less than or equal to lookup_value. | The lookup_array values must be placed in ascending order (e.g., -2, -1, 0, 1, 2; or A-Z;, or FALSE, TRUE. | lookup_value is 25 but it’s missing from lookup_array, so the position of the next smallest number, like 22, is returned instead. |
0 | Finds the first value that’s exactly equal to lookup_value. | The lookup_array values can be in any order. | lookup_value is 25, so it returns the position of 25. |
-1 | Finds the smallest value that’s greater or equal to lookup_value. | The lookup_array values must be placed in descending order (e.g., 2, 1, 0, -1, -2). | lookup_value is 25 but it’s missing from lookup_array, so the position of the next largest number, like 34, is returned instead. |
Use 1 or -1 for times when you need to run an approximate lookup along a scale, like when dealing with numbers and when approximations are okay. But remember that if you don’t specify match_type, 1 will be the default, which can skew the results if you’re really wanting an exact match.
Example INDEX and MATCH Formulas
Before we look at how to combine INDEX and MATCH into one formula, we need to understand how these functions work on their own.
INDEX Examples
=INDEX(A1:B2,2,2)
=INDEX(A1:B1,1)
=INDEX(2:2,1)
=INDEX(B1:B2,1)
In this first example, there are four INDEX formulas we can use to get different values:
- =INDEX(A1:B2,2,2) looks through A1:B2 to find the value in the second column and second row, which is Stacy.
- =INDEX(A1:B1,1) looks through A1:B1 to find the value in the first column, which is Jon.
- =INDEX(2:2,1) looks through everything in the second row to locate the value in the first column, which is Tim.
- =INDEX(B1:B2,1) looks through B1:B2 to locate the value in the first row, which is Amy.
MATCH Examples
=MATCH("Stacy",A2:D2,0)
=MATCH(14,D1:D2)
=MATCH(14,D1:D2,-1)
=MATCH(13,A1:D1,0)
Here are four easy examples of the MATCH function:
- =MATCH(«Stacy»,A2:D2,0) is searching for Stacy in the range A2:D2 and returns 3 as the result.
- =MATCH(14,D1:D2) is searching for 14 in the range D1:D2, but since it’s not found in the table, MATCH finds the next largest value that’s less than or equal to 14, which in this case is 13, which is in position 1 of lookup_array.
- =MATCH(14,D1:D2,-1) is identical to the formula above it, but since the array isn’t in descending order like -1 requires, we get an error.
- =MATCH(13,A1:D1,0) is looking for 13 in the first row of the sheet, which returns 4 since it’s the fourth item in this array.
INDEX-MATCH Examples
Here are two examples where we can combine INDEX and MATCH in one formula:
Find Cell Reference in Table
=INDEX(B2:B5,MATCH(F1,A2:A5))
This example is nesting the MATCH formula within the INDEX formula. The goal is to identify the item color using the item number.
If you look at the image, you can see in the «Separated» rows how the formulas would be written on their own, but since we’re nesting them, this is what’s happening:
- MATCH(F1,A2:A5) is looking for the F1 value (8795) in the data set A2:A5. If we count down the column, we can see it’s 2, so that’s what the MATCH function just figured out.
- The INDEX array is B2:B5 since we’re ultimately looking for the value in that column.
- The INDEX function could now be rewritten like this since 2 is what MATCH found: INDEX(B2:B5, 2, [column_num]).
- Since column_num is optional, we can remove that to be left with this: INDEX(B2:B5,2).
- So now, this is like a normal INDEX formula where we’re finding the value of the second item in B2:B5, which is red.
Lookup By Row and Column Headings
=INDEX(B2:E13,MATCH(G1,A2:A13,0),MATCH(G2,B1:E1,0))
In this example of MATCH and INDEX, we’re doing a two-way lookup. The idea is to see how much money we made off of Green items in May. This is really similar to the example above, but an extra MATCH formula is nested in INDEX.
- MATCH(G1,A2:A13,0) is the first item solved in this formula. It’s looking for G1 (the word «May») in A2:A13 to get a particular value. We don’t see it here, but it’s 5.
- MATCH(G2,B1:E1,0) is the second MATCH formula, and it’s really similar to the first but is instead looking for G2 (the word «Green») in the column headings at B1:E1. This one resolves to 3.
- We can now rewrite the INDEX formula like this to visualize what’s happening: =INDEX(B2:E13,5,3). This is looking in the whole table, B2:E13, for the fifth row and third column, which returns $180.
MATCH and INDEX Rules
There are several things to keep in mind when writing formulas with these functions:
- MATCH isn’t case sensitive, so uppercase and lowercase letters are treated the same when matching text values.
- MATCH returns #N/A for multiple reasons: if match_type is 0 and lookup_value isn’t found if match_type is -1 and lookup_array isn’t in descending order, if match_type is 1 and lookup_array isn’t in ascending order, and if lookup_array isn’t a single row or column.
- You can use a wildcard character in the lookup_value argument if match_type is 0 and lookup_value is a text string. A question mark matches any single character and an asterisk matches any sequence of characters (e.g., =MATCH(«Jo*»,1:1,0)). To use MATCH to find an actual question mark or asterisk, type ~ first.
- INDEX returns #REF! if row_num and column_num don’t point to a cell within the array.
Related Excel Functions
The MATCH function is similar to LOOKUP, but MATCH returns the position of the item instead of the item itself.
VLOOKUP is another lookup function you can use in Excel, but unlike MATCH which requires INDEX for advanced lookups, VLOOKUP formulas only need that one function.
Thanks for letting us know!
Get the Latest Tech News Delivered Every Day
Subscribe
Содержание
- Использование функции ИНДЕКС
- Способ 1: использование оператора ИНДЕКС для массивов
- Способ 2: применение в комплексе с оператором ПОИСКПОЗ
- Способ 3: обработка нескольких таблиц
- Способ 4: вычисление суммы
- Вопросы и ответы
Одной из самых полезных функций программы Эксель является оператор ИНДЕКС. Он производит поиск данных в диапазоне на пересечении указанных строки и столбца, возвращая результат в заранее обозначенную ячейку. Но полностью возможности этой функции раскрываются при использовании её в сложных формулах в комбинации с другими операторами. Давайте рассмотрим различные варианты её применения.
Использование функции ИНДЕКС
Оператор ИНДЕКС относится к группе функций из категории «Ссылки и массивы». Он имеет две разновидности: для массивов и для ссылок.
Вариант для массивов имеет следующий синтаксис:
=ИНДЕКС(массив;номер_строки;номер_столбца)
При этом два последних аргумента в формуле можно использовать, как вместе, так и любой один из них, если массив одномерный. При многомерном диапазоне следует применять оба значения. Нужно также учесть, что под номером строки и столбца понимается не номер на координатах листа, а порядок внутри самого указанного массива.
Синтаксис для ссылочного варианта выглядит так:
=ИНДЕКС(ссылка;номер_строки;номер_столбца;[номер_области])
Тут точно так же можно использовать только один аргумент из двух: «Номер строки» или «Номер столбца». Аргумент «Номер области» вообще является необязательным и он применяется только тогда, когда в операции участвуют несколько диапазонов.
Таким образом, оператор ищет данные в установленном диапазоне при указании строки или столбца. Данная функция своими возможностями очень похожа на оператора ВПР, но в отличие от него может производить поиск практически везде, а не только в крайнем левом столбце таблицы.
Способ 1: использование оператора ИНДЕКС для массивов
Давайте, прежде всего, разберем на простейшем примере алгоритм использования оператора ИНДЕКС для массивов.
Имеем таблицу зарплат. В первом её столбце отображены фамилии работников, во втором – дата выплаты, а в третьем – величина суммы заработка. Нам нужно вывести имя работника в третьей строке.
- Выделяем ячейку, в которой будет выводиться результат обработки. Кликаем по значку «Вставить функцию», который размещен сразу слева от строки формул.
- Происходит процедура активации Мастера функций. В категории «Ссылки и массивы» данного инструмента или «Полный алфавитный перечень» ищем наименование «ИНДЕКС». После того, как нашли этого оператора, выделяем его и щелкаем по кнопке «OK», которая размещается в нижней части окна.
- Открывается небольшое окошко, в котором нужно выбрать один из типов функции: «Массив» или «Ссылка». Нужный нам вариант «Массив». Он расположен первым и по умолчанию выделен. Поэтому нам остается просто нажать на кнопку «OK».
- Открывается окно аргументов функции ИНДЕКС. Как выше говорилось, у неё имеется три аргумента, а соответственно и три поля для заполнения.
В поле «Массив» нужно указать адрес обрабатываемого диапазона данных. Его можно вбить вручную. Но для облегчения задачи мы поступим иначе. Ставим курсор в соответствующее поле, а затем обводим весь диапазон табличных данных на листе. После этого адрес диапазона тут же отобразится в поле.
В поле «Номер строки» ставим цифру «3», так как по условию нам нужно определить третье имя в списке. В поле «Номер столбца» устанавливаем число «1», так как колонка с именами является первой в выделенном диапазоне.
После того, как все указанные настройки совершены, щелкаем по кнопке «OK».
- Результат обработки выводится в ячейку, которая была указана в первом пункте данной инструкции. Именно выведенная фамилия является третьей в списке в выделенном диапазоне данных.
Мы разобрали применение функции ИНДЕКС в многомерном массиве (несколько столбцов и строк). Если бы диапазон был одномерным, то заполнение данных в окне аргументов было бы ещё проще. В поле «Массив» тем же методом, что и выше, мы указываем его адрес. В данном случае диапазон данных состоит только из значений в одной колонке «Имя». В поле «Номер строки» указываем значение «3», так как нужно узнать данные из третьей строки. Поле «Номер столбца» вообще можно оставить пустым, так как у нас одномерный диапазон, в котором используется только один столбец. Жмем на кнопку «OK».
Результат будет точно такой же, что и выше.
Это был простейший пример, чтобы вы увидели, как работает данная функция, но на практике подобный вариант её использования применяется все-таки редко.
Урок: Мастер функций в Экселе
Способ 2: применение в комплексе с оператором ПОИСКПОЗ
На практике функция ИНДЕКС чаще всего применяется вместе с аргументом ПОИСКПОЗ. Связка ИНДЕКС – ПОИСКПОЗ является мощнейшим инструментом при работе в Эксель, который по своему функционалу более гибок, чем его ближайший аналог – оператор ВПР.
Основной задачей функции ПОИСКПОЗ является указание номера по порядку определенного значения в выделенном диапазоне.
Синтаксис оператора ПОИСКПОЗ такой:
=ПОИСКПОЗ(искомое_значение, просматриваемый_массив, [тип_сопоставления])
- Искомое значение – это значение, позицию которого в диапазоне мы ищем;
- Просматриваемый массив – это диапазон, в котором находится это значение;
- Тип сопоставления – это необязательный параметр, который определяет, точно или приблизительно искать значения. Мы будем искать точные значения, поэтому данный аргумент не используется.
С помощью этого инструмента можно автоматизировать введение аргументов «Номер строки» и «Номер столбца» в функцию ИНДЕКС.
Посмотрим, как это можно сделать на конкретном примере. Работаем все с той же таблицей, о которой шла речь выше. Отдельно у нас имеется два дополнительных поля – «Имя» и «Сумма». Нужно сделать так, что при введении имени работника автоматически отображалась сумма заработанных им денег. Посмотрим, как это можно воплотить на практике, применив функции ИНДЕКС и ПОИСКПОЗ.
- Прежде всего, узнаем, какую заработную плату получает работник Парфенов Д. Ф. Вписываем его имя в соответствующее поле.
- Выделяем ячейку в поле «Сумма», в которой будет выводиться итоговый результат. Запускаем окно аргументов функции ИНДЕКС для массивов.
В поле «Массив» вносим координаты столбца, в котором находятся суммы заработных плат работников.
Поле «Номер столбца» оставляем пустым, так как мы используем для примера одномерный диапазон.
А вот в поле «Номер строки» нам как раз нужно будет записать функцию ПОИСКПОЗ. Для её записи придерживаемся того синтаксиса, о котором шла речь выше. Сразу в поле вписываем наименование самого оператора «ПОИСКПОЗ» без кавычек. Затем сразу же открываем скобку и указываем координаты искомого значения. Это координаты той ячейки, в которую мы отдельно записали фамилию работника Парфенова. Ставим точку с запятой и указываем координаты просматриваемого диапазона. В нашем случае это адрес столбца с именами сотрудников. После этого закрываем скобку.
После того, как все значения внесены, жмем на кнопку «OK».
- Результат количества заработка Парфенова Д. Ф. после обработки выводится в поле «Сумма».
- Теперь, если в поле «Имя» мы изменим содержимое с «Парфенов Д.Ф.», на, например, «Попова М. Д.», то автоматически изменится и значение заработной платы в поле «Сумма».
Способ 3: обработка нескольких таблиц
Теперь посмотрим, как с помощью оператора ИНДЕКС можно обработать несколько таблиц. Для этих целей будет применяться дополнительный аргумент «Номер области».
Имеем три таблицы. В каждой таблице отображена заработная плата работников за отдельный месяц. Нашей задачей является узнать заработную плату (третий столбец) второго работника (вторая строка) за третий месяц (третья область).
- Выделяем ячейку, в которой будет производиться вывод результата и обычным способом открываем Мастер функций, но при выборе типа оператора выбираем ссылочный вид. Это нам нужно потому, что именно этот тип поддерживает работу с аргументом «Номер области».
- Открывается окно аргументов. В поле «Ссылка» нам нужно указать адреса всех трех диапазонов. Для этого устанавливаем курсор в поле и выделяем первый диапазон с зажатой левой кнопкой мыши. Затем ставим точку с запятой. Это очень важно, так как если вы сразу перейдете к выделению следующего массива, то его адрес просто заменит координаты предыдущего. Итак, после введения точки с запятой выделяем следующий диапазон. Затем опять ставим точку с запятой и выделяем последний массив. Все выражение, которое находится в поле «Ссылка» берем в скобки.
В поле «Номер строки» указываем цифру «2», так как ищем вторую фамилию в списке.
В поле «Номер столбца» указываем цифру «3», так как колонка с зарплатой является третьей по счету в каждой таблице.
В поле «Номер области» ставим цифру «3», так как нам нужно найти данные в третьей таблице, в которой содержится информация о заработной плате за третий месяц.
После того, как все данные введены, щелкаем по кнопке «OK».
- После этого в предварительно выделенную ячейку выводятся результаты вычисления. Там отображается сумма заработной платы второго по счету работника (Сафронова В. М.) за третий месяц.
Способ 4: вычисление суммы
Ссылочная форма не так часто применяется, как форма массива, но её можно использовать не только при работе с несколькими диапазонами, но и для других нужд. Например, её можно применять для расчета суммы в комбинации с оператором СУММ.
При сложении суммы СУММ имеет следующий синтаксис:
=СУММ(адрес_массива)
В нашем конкретном случае сумму заработка всех работников за месяц можно вычислить при помощи следующей формулы:
=СУММ(C4:C9)
Но можно её немного модифицировать, использовав функцию ИНДЕКС. Тогда она будет иметь следующий вид:
=СУММ(C4:ИНДЕКС(C4:C9;6))
В этом случае в координатах начала массива указывается ячейка, с которой он начинается. А вот в координатах указания окончания массива используется оператор ИНДЕКС. В данном случае первый аргумент оператора ИНДЕКС указывает на диапазон, а второй – на последнюю его ячейку – шестую.
Урок: Полезные функции Excel
Как видим, функцию ИНДЕКС можно использовать в Экселе для решения довольно разноплановых задач. Хотя мы рассмотрели далеко не все возможные варианты её применения, а только самые востребованные. Существует два типа этой функции: ссылочный и для массивов. Наиболее эффективно её можно применять в комбинации с другими операторами. Созданные таким способом формулы смогут решать самые сложные задачи.
Функция INDEX (ИНДЕКС) в Excel используется для получения данных из таблицы, при условии что вы знаете номер строки и столбца, в котором эти данные находятся.
Например, в таблице ниже, вы можете использовать эту функцию для того, чтобы получить результаты экзамена по Физике у Андрея, зная номер строки и столбца, в которых эти данные находятся.
Содержание
- Что возвращает функция
- Синтаксис
- Аргументы функции
- Дополнительная информация
- Примеры использования функции ИНДЕКС в Excel
- Пример 1. Ищем результаты экзамена по физике для Алексея
- Пример 2. Создаем динамический поиск значений с использованием функций ИНДЕКС и ПОИСКПОЗ
- Пример 3. Создаем динамический поиск значений с использованием функций INDEX (ИНДЕКС) и MATCH (ПОИСКПОЗ) и выпадающего списка
- Пример 4. Использование трехстороннего поиска с помощью INDEX (ИНДЕКС) / MATCH (ПОИСКПОЗ)
Что возвращает функция
Возвращает данные из конкретной строки и столбца табличных данных.
Синтаксис
=INDEX (array, row_num, [col_num]) — английская версия
=INDEX (array, row_num, [col_num], [area_num]) — английская версия
=ИНДЕКС(массив; номер_строки; [номер_столбца]) — русская версия
=ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области]) — русская версия
Аргументы функции
- array (массив) — диапазон ячеек или массив данных для поиска;
- row_num (номер_строки) — номер строки, в которой находятся искомые данные;
- [col_num] ([номер_столбца]) (необязательный аргумент) — номер колонки, в которой находятся искомые данные. Этот аргумент необязательный. Но если в аргументах функции не указаны критерии для row_num (номер_строки), необходимо указать аргумент col_num (номер_столбца);
- [area_num] ([номер_области]) — (необязательный аргумент) — если аргумент массива состоит из нескольких диапазонов, то это число будет использоваться для выбора всех диапазонов.
Дополнительная информация
- Если номер строки или колонки равен “0”, то функция возвращает данные всей строки или колонки;
- Если функция используется перед ссылкой на ячейку (например, A1), она возвращает ссылку на ячейку вместо значения (см. примеры ниже);
- Чаще всего INDEX (ИНДЕКС) используется совместно с функцией MATCH (ПОИСКПОЗ);
- В отличие от функции VLOOKUP (ВПР), функция INDEX (ИНДЕКС) может возвращать данные как справа от искомого значения, так и слева;
- Функция используется в двух формах — Массива данных и Формы ссылки на данные:
— Форма «Массива» используется когда вы хотите найти значения, основанные на конкретных номерах строк и столбцов таблицы;
— Форма «Ссылок на данные» используется при поиске значений в нескольких таблицах (используете аргумент [area_num] ([номер_области]) для выбора таблицы и только потом сориентируете функцию по номеру строки и столбца.
Примеры использования функции ИНДЕКС в Excel
Пример 1. Ищем результаты экзамена по физике для Алексея
Предположим, у вас есть результаты экзаменов в табличном виде по нескольким студентам:
Для того, чтобы найти результаты экзамена по физике для Андрея нам нужна формула:
=INDEX($B$3:$E$9,3,2) — английская версия
=ИНДЕКС($B$3:$E$9;3;2) — русская версия
В формуле мы определили аргумент диапазона данных, где мы будем искать данные $B$3:$E$9. Затем, указали номер строки “3”, в которой находятся результаты экзамена для Андрея, и номер колонки “2”, где находятся результаты экзамена именно по физике.
Пример 2. Создаем динамический поиск значений с использованием функций ИНДЕКС и ПОИСКПОЗ
Не всегда есть возможность указать номера строки и столбца вручную. У вас может быть огромная таблица данных, отображение данных которой вы можете сделать динамическим, чтобы функция автоматически идентифицировала имя или экзамен, указанные в ячейках, и дала правильный результат.
Пример динамического отображения данных ниже:
Для динамического отображения данных мы используем комбинацию функций INDEX (ИНДЕКС) и MATCH (ПОИСКПОЗ).
Вот такая формула поможет нам добиться результата:
=INDEX($B$3:$E$9,MATCH($G$4,$A$3:$A$9,0),MATCH($H$3,$B$2:$E$2,0)) — английская версия
=ИНДЕКС($B$3:$E$9;ПОИСКПОЗ($G$4;$A$3:$A$9;0);ПОИСКПОЗ($H$3;$B$2:$E$2;0)) — русская версия
В формуле выше, не используя сложного программирования, мы с помощью функции MATCH (ПОИСКПОЗ) сделали отображение данных динамическим.
Динамический отображение строки задается следующей частью формулы —
MATCH($G$4,$A$3:$A$9,0) — английская версия
ПОИСКПОЗ($G$4;$A$3:$A$9;0) — русская версия
Она сканирует имена студентов и определяет значение поиска ($G$4 в нашем случае). Затем она возвращает номер строки для поиска в наборе данных. Например, если значение поиска равно Алексей, функция вернет “1”, если это Максим, оно вернет “4” и так далее.
Динамическое отображение данных столбца задается следующей частью формулы —
MATCH($H$3,$B$2:$E$2,0) — английская версия
ПОИСКПОЗ($H$3;$B$2:$E$2;0) — русская версия
Она сканирует имена объектов и определяет значение поиска ($H$3 в нашем случае). Затем она возвращает номер столбца для поиска в наборе данных. Например, если значение поиска Математика, функция вернет “1”, если это Физика, функция вернет “2” и так далее.
Больше лайфхаков в нашем Telegram Подписаться
Пример 3. Создаем динамический поиск значений с использованием функций INDEX (ИНДЕКС) и MATCH (ПОИСКПОЗ) и выпадающего списка
На примере выше мы вручную вводили имена студентов и названия предметов. Вы можете сэкономить время на вводе данных, используя выпадающие списки. Это актуально, когда количество данных огромное.
Используя выпадающие списки, вам нужно просто выбрать из списка имя студента и функция автоматически найдет и подставит необходимые данные.
Пример ниже:
Используя такой подход, вы можете создать удобный дашборд, например для учителя. Ему не придется заниматься фильтрацией данных или прокруткой листа со студентами, для того чтобы найти результаты экзамена конкретного студента, достаточно просто выбрать имя и результаты динамически отразятся в лаконичной и удобной форме.
Для того, чтобы осуществить динамическую подстановку данных с использованием функций INDEX (ИНДЕКС) и MATCH (ПОИСКПОЗ) и выпадающего списка, мы используем ту же формулу, что в Примере 2:
=INDEX($B$3:$E$9,MATCH($G$4,$A$3:$A$9,0),MATCH($H$3,$B$2:$E$2,0)) — английская версия
=ИНДЕКС($B$3:$E$9;ПОИСКПОЗ($G$4;$A$3:$A$9;0);ПОИСКПОЗ($H$3;$B$2:$E$2;0)) — русская версия
Единственное отличие, от Примера 2, мы на месте ввода имени и предмета создадим выпадающие списки:
- Выбираем ячейку, в которой мы хотим отобразить выпадающий список с именами студентов;
- Кликаем на вкладку “Data” => Data Tools => Data Validation;
- В окне Data Validation на вкладке “Settings” в подразделе Allow выбираем “List”;
- В качестве Source нам нужно выбрать диапазон ячеек, в котором указаны имена студентов;
- Кликаем ОК
Теперь у вас есть выпадающий список с именами студентов в ячейке G5. Таким же образом вы можете создать выпадающий список с предметами.
Пример 4. Использование трехстороннего поиска с помощью INDEX (ИНДЕКС) / MATCH (ПОИСКПОЗ)
Функция INDEX (ИНДЕКС) может быть использована для обработки трехсторонних запросов.
Что такое трехсторонний поиск?
В приведенных выше примерах мы использовали одну таблицу с оценками для студентов по разным предметам. Это пример двунаправленного поиска, поскольку мы используем две переменные для получения оценки (имя студента и предмет).
Теперь предположим, что к концу года студент прошел три уровня экзаменов: «Вступительный», «Полугодовой» и «Итоговый экзамен».
Трехсторонний поиск — это возможность получить отметки студента по заданному предмету с указанным уровнем экзамена.
Вот пример трехстороннего поиска:
В приведенном выше примере, кроме выбора имени студента и названия предмета, вы также можете выбрать уровень экзамена. Основываясь на уровне экзамена, формула возвращает соответствующее значение из одной из трех таблиц.
Для таких расчетов нам поможет формула:
=INDEX(($B$3:$E$7,$B$11:$E$15,$B$19:$E$23),MATCH($G$4,$A$3:$A$7,0),MATCH($H$3,$B$2:$E$2,0),IF($H$2=»Вступительный»,1,IF($H$2=»Полугодовой»,2,3))) — английская версия
=ИНДЕКС(($B$3:$E$7;$B$11:$E$15;$B$19:$E$23);ПОИСКПОЗ($G$4;$A$3:$A$7;0);ПОИСКПОЗ($H$3;$B$2:$E$2;0); ЕСЛИ($H$2=»Вступительный»;1;ЕСЛИ($H$2=»Полугодовой»;2;3))) — русская версия
Давайте разберем эту формулу, чтобы понять, как она работает.
Эта формула принимает четыре аргумента. Функция INDEX (ИНДЕКС) — одна из тех функций в Excel, которая имеет более одного синтаксиса.
=INDEX (array, row_num, [col_num]) — английская версия
=INDEX (array, row_num, [col_num], [area_num]) — английская версия
=ИНДЕКС(массив; номер_строки; [номер_столбца]) — русская версия
=ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области]) — русская версия
По всем вышеприведенным примерам мы использовали первый синтаксис, но для трехстороннего поиска нам нужно использовать второй синтаксис.
Рассмотрим каждую часть формулы на основе второго синтаксиса.
- array (массив) – ($B$3:$E$7,$B$11:$E$15,$B$19:$E$23):Вместо использования одного массива, в данном случае мы использовали три массива в круглых скобках.
- row_num (номер_строки) – MATCH($G$4,$A$3:$A$7,0): функция MATCH (ПОИСКПОЗ) используется для поиска имени студента для ячейки $G$4 из списка всех студентов.
- col_num (номер_столбца) – MATCH($H$3,$B$2:$E$2,0): функция MATCH (ПОИСКПОЗ) используется для поиска названия предмета для ячейки $H$3 из списка всех предметов.
- [area_num] ([номер_области]) – IF($H$2=”Вступительный”,1,IF($H$2=”Полугодовой”,2,3)): Значение номера области сообщает функции INDEX (ИНДЕКС), какой массив с данными выбрать. В этом примере у нас есть три массива в первом аргументе. Если вы выберете «Вступительный» из раскрывающегося меню, функция IF (ЕСЛИ) вернет значение “1”, а функция INDEX (ИНДЕКС) выберут 1-й массив из трех массивов ($B$3:$E$7).
Уверен, что теперь вы подробно изучили работу функции INDEX (ИНДЕКС) в Excel!