Примеры функции ИНДЕКС для создания массивов значений в Excel
Функция ИНДЕКС в Excel возвращает данные из таблицы или определенного диапазона ячеек на основе известных строки и столбца, значения которых передаются в качестве аргументов функции.
Примеры использования функции ИНДЕКС в Excel
Существует два варианта данной функции, отличающиеся синтаксической записью:
- Форма массива – функция ИНДЕКС используется для возврата одного или нескольких значений элементов массива (константы массивов в Excel, обозначаемые фигурными скобками «{}») или диапазона ячеек. Если в качестве первого аргумента функции была передана константа массива, функция должна быть выполнена как формула массива (Ctrl+Shift+Enter).
- Ссылочная форма – функция ИНДЕКС используется для возврата ссылки на определенную аргументами ячейку или несколько ячеек из одного либо нескольких диапазонов ячеек. Если эти диапазоны не являются смежными, можно явно указать диапазон, в котором будет произведен поиск требуемой ячейки. Формулы, принимающие в качестве аргументов не ссылочные данные, будут интерпретировать возвращенный функцией ИНДЕКС результат в качестве значения, хранящегося в ячейке, а не ссылки на нее. Например, функция =ФАКТР(ИНДЕКС(A4:B7;6;2)) вернет факториал числа, которое содержится в ячейке B6. Если результат выполнения функции ИНДЕКС используется в качестве аргумента функции, принимающей данные ссылочного типа, он будет определен в качестве ссылки на ячейку. Например, функция =СТРОКА(ИНДЕКС(A4:B7;6;2)) вернет число 4, то есть номер строки, в которой содержится ячейка B6.
Динамическая выборка из массива значений ячеек
Пример 1. В таблице Excel указаны данные о средней стоимости некоторых продуктов в определенные месяцы года. Найти стоимость молока в мае с использованием функции ИНДЕКС.
Вид исходной таблицы данных:
Для нахождения стоимости молока в мае используем формулу:
Описание аргументов:
- B2:G8 – диапазон ячеек таблицы с числовыми значениями, в которых выполняется поиск;
- ПОИСКПОЗ(A10;A2:A8;0) – функция, возвращающая номер строки из диапазона A2:A8, в которой находится значение, содержащееся в ячейке A10 («Молоко, 1л»);
- ПОИСКПОЗ(B10;B1:G1;0) – функция, возвращающая номер столбца из диапазона B1:G1, в котором содержится значение, хранящееся в ячейке B10 («Май»).
Искомая ячейка находится в диапазоне B2:G8 на пересечении строки и столбца, найденных функциями ПОИСКПОЗ. В результате получим:
Стратегический анализ расходов в Excel
Пример 2. Определить, сколько денег потратил бы покупатель в феврале, если бы купил 2 л молока и 4 кг яблок на основании данных, содержащихся в таблице к первому примеру.
Вид таблиц данных:
Для расчетов используем следующую формулу:
Функция СУММ возвращает сумму значений в ячейках, определенных функциями ИНДЕКС, умноженных на значения, содержащиеся в ячейках B12 и B13 (2 л, 4 кг) соответственно.
Результат вычислений:
Формула выглядит громоздкой, однако она является универсальной, поскольку позволяет вычислить суммарные затраты на покупку двух любых продуктов в любых количествах за любой из указанных месяцев.
Пример формулы ИНДЕКС и ПОИСКПОЗ в Excel
Пример 3. Организовать фильтрацию данных по трем критериям из нескольких таблиц.
Вид таблиц данных:
Для быстрого поиска оценки у любого ученика за любую контрольную в любой из представленных таблиц создадим три открывающихся списка, содержащих:
- 1 Фамилии учеников:
- 2 Номера контрольных работ:
- 3 Номера четвертей:
В ячейку, в которой будет выводится результат, запишем следующую формулу:
В качестве первого аргумента функции ИНДЕКС передана ссылка на несколько несмежных диапазонов. Для поиска номеров строки и столбца, на пересечении которых находится ячейка с искомым значением, используются функции ПОИСКПОЗ. Функции ЕСЛИ необходимы для указания порядкового номера диапазона из ссылки, определяемого номером четверти, которую можно выбрать из списка.
Пример поиска оценки ученика с фамилией Иванищев за контрольную №2, написанную во второй четверти:
Особенности использования функции ИНДЕКС в Excel
Функция имеет два варианта синтаксической записи:
= ИНДЕКС(массив; номер_строки; [номер_столбца])
= ИНДЕКС(ссылка; номер_строки; [номер_столбца]; [номер_области])
Описание аргументов:
- массив – обязательный для заполнения первый аргумент функции ИНДЕКС формы массива, принимающий ссылку на диапазон ячеек или константу массива. Диапазон ячеек или массив, указанные в качестве данного аргумента, могут содержать:
- Одну строку либо столбец. В этом случае один из последующих аргументов функции является необязательным для заполнения (строка или столбец соответственно).
- Несколько строк и столбцов. Функция ИНДЕКС вернет диапазон ячеек, являющихся строкой или столбцом массива (диапазона), переданного в качестве первого аргумента, если указан только номер его строки либо номер столбца соответственно.
- ссылка – обязательный для заполнения первый аргумент функции ссылочной формы, принимающий ссылку на один или несколько диапазонов ячеек. Ссылки на два и более несмежных диапазона должны быть заключены в скобки (например, функция с аргументами ((A1:B4;D4:E9);2;2;1), принимающая ссылку на несмежные диапазоны A1:B4 и D4:E9). Один из последующих аргументов функции необязателен для заполнения, если в качестве данного аргумента передана ссылка на области, состоящие из одной строки или одного столбца.
- номер_строки – обязательный для заполнения аргумент (если следующий явно не указан), принимающий числовые значения, которые характеризуют номер строки в массиве или диапазоне, заданном аргументом массив, либо номер строки в диапазоне ячеек, заданном аргументом ссылка.
- [номер_столбца] – необязательный аргумент, принимающий число, которое соответствует номеру искомого столбца в массиве или диапазоне, который задан аргументом массив, либо номер строки в диапазоне ячеек, переданном в качестве аргумента ссылка.
- [номер_области] – необязательный аргумент функции ИНДЕКС ссылочной формы, принимающий числовое значение, которое характеризует порядковый номер диапазона из переданных в качестве аргумента ссылка, в котором будет произведен поиск на основе заданных номерах столбца и строки. Нумерация диапазонов начинается с единицы (1). Для корректной работы функции ИНДЕКС все несмежные диапазоны, переданные в качестве аргумента ссылка, должны находиться на одном листе.
Примечания:
- Аргументы номер_строки и [номер_столбца] должны указывать на ячейку (ячейки) внутри массива или диапазона, переданных в качестве аргументов массив или ссылка, иначе функция вернет код ошибки #ССЫЛКА!.
- Если в качестве аргументов номер_строки и (или) [номер_столбца] указаны значения 0 (нуль), результатом выполнения функции ИНДЕКС будет массив значений из строки или столбца либо всего массива (диапазона) переданного в качестве аргумента массив. Это справедливо и для функции ИНДЕКС ссылочной формы, только вместо массива значений будет возвращена ссылка не весь столбец, всю строку или весь диапазон (если оба аргумента принимают значение 0).
- Если требуется, чтобы функция формы массива вернула значения нескольких ячеек, а не одной ячейки, находящейся на пересечении указанных номеров строки и столбца, она должна быть выполнена в качестве формулы массива (сочетание клавиш Ctrl+Shift+Enter).