Функция ИНДЕКС() в EXCEL
history 29 декабря 2013 г.
- Группы статей
- Условное форматирование
- стандартные функции
Синтаксис функции
ИНДЕКС (массив; номер_строки; номер_столбца)
Массив — ссылка на диапазон ячеек.
Номер_строки — номер строки в массиве, из которой требуется возвратить значение. Если аргумент «номер_строки» опущен, аргумент «номер_столбца» является обязательным.
Номер_столбца — номер столбца в массиве, из которого требуется возвратить значение. Если аргумент «номер_столбца» опущен, аргумент «номер_строки» является обязательным.
Если используются оба аргумента — и «номер_строки», и «номер_столбца», — то функция ИНДЕКС() возвращает значение, находящееся в ячейке на пересечении указанных строки и столбца.
Значения аргументов «номер_строки» и «номер_столбца» должны указывать на ячейку внутри заданного массива; в противном случае функция ИНДЕКС() возвращает значение ошибки #ССЫЛКА! Например, формула =ИНДЕКС(A2:A13;22) вернет ошибку, т.к. в диапазоне А2:А13 только 12 строк.
Значение из заданной строки диапазона
Пусть имеется одностолбцовый диапазон А6:А9.
Выведем значение из 2-й строки диапазона, т.е. значение Груши . Это можно сделать с помощью формулы =ИНДЕКС(A6:A9;2)
Если диапазон горизонтальный (расположен в одной строке, например, А6:D6 ), то формула для вывода значения из 2-го столбца будет выглядеть так =ИНДЕКС(A6:D6;;2)
Значение из заданной строки и столбца таблицы
Пусть имеется таблица в диапазоне А6:B9.
Выведем значение, расположенное в 3-й строке и 2-м столбце таблицы, т.е. значение 200 . Это можно сделать с помощью формулы =ИНДЕКС(A6:B9;3;2)
Использование функции в формулах массива
Если задать для аргумента «номер_строки» или «номер_столбца» значение 0, функция ИНДЕКС() возвратит массив значений для целого столбца или, соответственно, целой строки (не всего столбца/строки листа, а только столбца/строки входящего в массив). Чтобы использовать массив значений, введите функцию ИНДЕКС() как формулу массива .
Пусть имеется одностолбцовый диапазон А6:А9. Выведем 3 первых значения из этого диапазона, т.е. на А6 , А7 , А8 . Для этого выделите 3 ячейки ( А21 , А22 , А23 ), в Строку формул введите формулу =ИНДЕКС(A6:A9;0) , затем нажмите CTRL+SHIFT+ENTER .
Зачем это нужно? Теперь удалить по отдельности значения из ячеек А21 , А22 , А23 не удастся, мы получим предупреждение "нельзя изменять часть массива".
Хотя можно просто ввести в этих 3-х ячейках ссылки на диапазон А6:А8. Выделите 3 ячейки и введите формулу =A6:A8. Затем нажмите CTRL+SHIFT+ENTER и получим тот же результат.
Использование массива констант
Вместо ссылки на диапазон можно использовать массив констант :
ПОИСКПОЗ() + ИНДЕКС()
Функция ИНДЕКС() часто используется в связке с функцией ПОИСКПОЗ() , которая возвращает позицию (строку) содержащую искомое значение. Это позволяет создать формулу, аналогичную функции ВПР() .
Формула =ВПР("яблоки";A35:B38;2;0) аналогична формуле =ИНДЕКС(B35:B38;ПОИСКПОЗ("яблоки";A35:A38;0)) которая извлекает цену товара Яблоки из таблицы, размещенную в диапазоне A35:B38
Связка ПОИСКПОЗ() + ИНДЕКС() даже гибче, чем функция ВПР() , т.к. с помощью ее можно, например, определить товар с заданной ценой (обратная задача, так называемый "левый ВПР()"). Формула =ИНДЕКС(A35:A38;ПОИСКПОЗ(200;B35:B38;0)) определяет товар с ценой 200. Если товаров с такой ценой несколько, то будет выведен первый сверху.
Ссылочная форма
Функция ИНДЕКС() позволяет использовать так называемую ссылочную форму. Поясним на примере.
Пусть имеется диапазон с числами ( А2:А10 ) Необходимо найти сумму первых 2-х, 3-х, . 9 значений. Конечно, можно написать несколько формул =СУММ(А2:А3) , =СУММ(А2:А4) и т.д. Но, записав формулу ввиде:
получим универсальное решение, в котором требуется изменять только последний аргумент (если в формуле выше вместо 4 ввести 5, то будет подсчитана сумма первых 5-и значений).
Использование функции ИНДЕКС() в этом примере принципиально отличается от примеров рассмотренных выше, т.к. функция возвращает не само значение, а ссылку (адрес ячейки) на значение. Вышеуказанная формула =СУММ(A2:ИНДЕКС(A2:A10;4)) эквивалентна формуле =СУММ(A2:A5)
Аналогичный результат можно получить используя функцию СМЕЩ()
Теперь более сложный пример, с областями.
Пусть имеется таблица продаж нескольких товаров по полугодиям.
Задав Товар , год и полугодие , можно вывести соответствующий объем продаж с помощью формулы =ИНДЕКС((B9:C12;D9:E12;F9:G12);B15;A19;B17)
Вся таблица как бы разбита на 3 подтаблицы (области), соответствующие отдельным годам: B9:C12 ; D9:E12 ; F9:G12 . Задавая номер строки, столбца (в подтаблице) и номер области, можно вывести соответствующий объем продаж. В файле примера , выбранные строка и столбец выделены цветом с помощью Условного форматирования .
ИНДЕКС (функция ИНДЕКС)
Функция ИНДЕКС возвращает значение или ссылку на значение из таблицы или диапазона.
Функцию ИНДЕКС можно использовать двумя способами:
Если вы хотите возвращать значение указанной ячейки или массива ячеек, см. раздел Форма массива.
Если требуется возвращать ссылку на указанные ячейки, см. раздел Ссылочная форма.
Форма массива
Описание
Возвращает значение элемента таблицы или массива, выбранного индексами номеров строк и столбцов.
Если первый аргумент функции ИНДЕКС является константной массива, используйте форму массива.
Синтаксис
ИНДЕКС(массив; номер_строки; [номер_столбца])
Аргументы формы массива функции ИНДЕКС следующую:
Массива — обязательный аргумент. Диапазон ячеек или константа массива.
Если массив содержит только одну строку или один столбец, row_num или column_num аргумент не является обязательным.
Если массив имеет несколько строк и несколько столбцов и используется только row_num или column_num, индекс возвращает массив всей строки или столбца в массиве.
Номер_строки Обязательно, если column_num нет. Выбирает строку в массиве, из которой требуется возвратить значение. Если row_num опущен, column_num требуется.
Номер_столбца — необязательный аргумент. Выбирает столбец в массиве, из которого требуется возвратить значение. Если column_num опущен, row_num требуется.
Замечания
Если используются row_num и column_num, индекс возвращает значение ячейки на пересечении row_num и column_num.
row_num и column_num должны указать на ячейку в массиве; в противном случае индекс возвращает #REF! ошибку "#ВЫЧИС!".
Если row_num или column_num 0 , индекс возвращает массив значений для всего столбца или строки соответственно. Чтобы использовать значения, возвращенные как массив, введите функцию ИНДЕКС как формулу массива.
Примечание: Если у вас есть текущая версия Microsoft 365 ,вы можете ввести формулу в левую верхнюю ячейку диапазона выходных данных, а затем нажать ввод, чтобы подтвердить формулу как формулу динамического массива. В противном случае формула должна быть введена как формула массива устаревшей. Для этого сначала выберем диапазон вывода, введите формулу в левую верхнюю ячейку диапазона, а затем нажмите CTRL+SHIFT+ВВОД, чтобы подтвердить ее. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
Примеры
Пример 1
В этих примерах функция ИНДЕКС используется для поиска значения ячейки, находящейся на пересечении заданных строки и столбца.
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — ВВОД.
Значение ячейки на пересечении второй строки и второго столбца в диапазоне A2:B3.
Значение ячейки на пересечении второй строки и первого столбца в диапазоне A2:B3.
Пример 2
В этом примере функция ИНДЕКС используется в формуле массива для поиска значений двух заданных ячеек в массиве с диапазоном 2 x 2.
Примечание: Если у вас есть текущая версия Microsoft 365 ,вы можете ввести формулу в левую верхнюю ячейку диапазона выходных данных, а затем нажать ввод, чтобы подтвердить формулу как формулу динамического массива. В противном случае формула должна быть введена как формула массива устаревшей: сначала выберем две пустые ячейки, введите формулу в левую верхнюю ячейку диапазона, а затем нажмите CTRL+SHIFT+ВВОД, чтобы подтвердить ее. Excel автоматически вставляет фигурные скобки в начале и конце формулы. Дополнительные сведения о формулах массива см. в статье Использование формул массива: рекомендации и примеры.
Значение ячейки на пересечении первой строки и второго столбца в массиве. Массив содержит значения 1 и 2 в первой строке и значения 3 и 4 во второй строке.
Значение ячейки на пересечении второй строки и второго столбца в массиве, указанном выше.
Форма справки
Описание
Возвращает ссылку на ячейку, расположенную на пересечении указанной строки и указанного столбца. Если ссылка состоит из несмежных выборок, можно выбрать выбор, который нужно найти.
Синтаксис
ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области])
Аргументы функции ИНДЕКС могут быть следующими:
Ссылки — обязательный аргумент. Ссылка на один или несколько диапазонов ячеек.
Если для ссылки ввести несмежный диапазон, заключите ссылку в скобки.
Если каждая область в ссылке содержит только одну строку или столбец, row_num или column_num аргумент соответственно является необязательным. Например, для ссылки на единственную строку нужно использовать формулу ИНДЕКС(ссылка,,номер_столбца).
Номер_строки — обязательный аргумент. Номер строки в диапазоне, заданном аргументом "ссылка", из которого требуется возвратить ссылку.
Номер_столбца — необязательный аргумент. Номер столбца в диапазоне, заданном аргументом "ссылка", из которого требуется возвратить ссылку.
area_num Необязательный. Выбирает диапазон в ссылке, из которого будут возвращаться пересечения row_num и column_num. Первая выбранная или введенная область имеет номер 1, вторая — 2 и так далее. Если area_num опущен, в индексе используется область 1. Перечисленные здесь области должны быть расположены на одном листе. Если указать области, которые не находятся на одном листе друг с другом, это приведет к #VALUE! ошибку "#ВЫЧИС!". Если вам нужно использовать диапазоны, расположенные на разных листах друг от друга, рекомендуется использовать форму массива функции ИНДЕКС и использовать другую функцию для вычисления диапазона, который составляет массив. Например, с помощью функции ВЫБОР можно вычислить диапазон, который будет использоваться.
Например, если в справочнике описаны ячейки (A1:B4;D1:E4,G1:H4), area_num 1 — диапазон A1:B4, area_num 2 — диапазон D1:E4, а area_num 3 — диапазон G1:H4.
Замечания
После ссылки и area_num вы выбрали определенный диапазон, row_num и column_num выберем определенную ячейку: row_num 1 — первую строку диапазона, column_num 1 — первый столбец и так далее. Ссылка, возвращаемая индексом, является пересечением row_num и column_num.
Если для row_num или column_num 0, индекс возвращает ссылку на весь столбец или строку соответственно.
row_num, column_num и area_num должны указать на ячейку в ссылке; в противном случае индекс возвращает #REF! ошибку "#ВЫЧИС!". Если row_num и column_num опущены, индекс возвращает область в ссылке, указанной area_num.
Результатом вычисления функции ИНДЕКС является ссылка, которая интерпретируется в качестве таковой другими функциями. В зависимости от формулы значение, возвращаемое функцией ИНДЕКС, может использоваться как ссылка или как значение. Например, формула ЯЧЕЙКА("ширина";ИНДЕКС(A1:B2;1;2)) эквивалентна формуле ЯЧЕЙКА("ширина";B1). Функция ЯЧЕЙКА использует значение, возвращаемое функцией ИНДЕКС, как ссылку. С другой стороны, такая формула, как 2*ИНДЕКС(A1:B2;1;2), преобразует значение, возвращаемое функцией ИНДЕКС, в число в ячейке B1.
Примеры
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД.