Как работать с массивами в Excel: от простых фильтров до сложной логики

Иван Корнев·11.04.2026·5 мин

Массивы в Excel позволяют обрабатывать целые диапазоны данных одной формулой, автоматически возвращая результаты в соседние ячейки. Вместо копирования формул вниз по столбцу вы пишете её один раз — и она «разливается» (spill) на нужный размер. В современных версиях (Excel 365, 2021+) это работает через динамические массивы: просто введите формулу и нажмите Enter. Ключевые функции для работы: FILTER (отбор), SORT (сортировка), UNIQUE (уникальные значения) и LET (оптимизация вычислений).

Главное отличие: Раньше для массивов требовалось сочетание Ctrl+Shift+Enter. Теперь большинство функций работают как обычные формулы, но возвращают сразу несколько значений, заполняя область ниже или правее.

Основные функции динамических массивов

Современный инструментарий Excel включает набор функций, специально созданных для работы с массивами. Они заменяют сложные сводные таблицы и громоздкие формулы СЧЁТЕСЛИ/СУММЕСЛИ.

Фильтрация и отбор данных (FILTER)

Функция FILTER извлекает данные из диапазона на основе заданных условий. Это одна из самых мощных замен автофильтру.

Синтаксис: =FILTER(массив; условие; [если_пусто])

Пример отбора продаж товара «Яблоко» за первый квартал:

=FILTER(A2:D100; (B2:B100="Яблоко")*(МЕСЯЦ(A2:A100)<=3); "Нет данных")

Здесь умножение условий (условие1)*(условие2) работает как логическое «И». Для «ИЛИ» используется сложение +.

Уникальные значения и сортировка (UNIQUE, SORT)

Вместо удаления дубликатов через меню используйте функцию UNIQUE. Она мгновенно создает список неповторяющихся элементов.

  • Уникальный список клиентов: =UNIQUE(B2:B100)
  • Сортировка по убыванию: =SORT(C2:C100; 1; -1) (где -1 означает сортировку от большего к меньшему).
  • Комбинирование: Можно вложить одну функцию в другую, например, получить уникальных клиентов и сразу отсортировать их по алфавиту: =SORT(UNIQUE(B2:B100)).

Генерация последовательностей (SEQUENCE)

Функция SEQUENCE создает массив чисел с заданными параметрами (строки, столбцы, шаг). Полезно для создания нумерации или тестовых данных.

Пример создания таблицы 5 строк на 2 столбца, начинающейся с числа 10 с шагом 5:

=SEQUENCE(5; 2; 10; 5)

Лайфхак: Используйте SEQUENCE вместе с FILTER, чтобы пронумеровать отфильтрованный список подряд, даже если в исходных данных есть пропуски. Формула: =SEQUENCE(СТРОК(FILTER(...))).

Продвинутые вычисления: LET и LAMBDA

Для сложных расчетов, где одна формула становится нечитаемой, используйте функцию LET. Она позволяет присваивать имена промежуточным вычислениям внутри формулы.

Оптимизация с помощью LET

Представим задачу: найти все продажи выше 100 единиц и посчитать их общую сумму, умноженную на налог (20%). Без LET пришлось бы дважды писать условие фильтрации.

=LET(
    данные; FILTER(A2:C100; C2:C100>100);
    суммы; INDEX(данные; ; 3);
    СУММ(суммы) * 1,2
)

Здесь данные и суммы — переменные, которые существуют только внутри этой формулы. Это ускоряет расчет (функция вычисляется один раз) и упрощает редактирование.

Матричные операции и логика

Функции MMULT (умножение матриц) и TRANSPOSE (транспонирование) остаются актуальными для финансового моделирования и переноса строк в столбцы.

  • Транспонирование: =TRANSPOSE(A1:E1) превратит горизонтальный ряд в вертикальный.
  • Обработка ошибок: Если диапазон для вывода результатов заблокирован другими данными, появится ошибка #РАЗЛИВ! (#SPILL!). Очистите ячейки в области разлива, чтобы формула заработала.

Практические сценарии использования

Ниже приведены готовые шаблоны формул для типовых задач аналитики.

Сценарий 1: Динамический ТОП-10 товаров

Нужно вывести 10 товаров с наибольшей выручкой, исключив пустые строки.

=TAKE(SORT(FILTER(A2:B100; B2:B100>0); 2; -1); 10)

Логика: FILTER убирает нули -> SORT сортирует по 2-му столбцу по убыванию -> TAKE берет первые 10 строк.

Сценарий 2: Подсчет частоты встречаемости

Создание таблицы «Значение — Количество» без сводной таблицы.

=LET(
    uniq; UNIQUE(B2:B100);
    counts; COUNTIF(B2:B100; uniq);
    HSTACK(uniq; counts)
)

Функция HSTACK объединяет два массива (уникальные значения и их подсчет) в одну таблицу по горизонтали.

Сценарий 3: Многокритериальный поиск

Поиск значения по двум условиям (например, цена для конкретного товара в конкретном регионе).

=FILTER(C2:C100; (A2:A100="Север")*(B2:B100="Товар А"); "Не найдено")
ФункцияНазначениеПример использования
FILTERОтбор строк по условиюВыбор активных клиентов
SORTBYСортировка по другому массивуСортировка имен по возрастанию продаж
UNIQUEУдаление дублейСписок отделов компании
SEQUENCEСоздание числовых рядовНумерация строк в отчете
XLOOKUPПоиск с возвратом массиваВозврат нескольких колонок по одному ключу

Частые ошибки и способы их решения

При работе с массивами пользователи часто сталкиваются со специфическими ошибками, которых не было в классических формулах.

  1. Ошибка #РАЗЛИВ! (#SPILL!)

    • Причина: Ячейки, куда формула пытается вывести результат, заняты текстом или другими формулами.
    • Решение: Очистите диапазон ниже и правее от активной ячейки. Также проверьте, нет ли внутри диапазона объединения ячеек.
  2. Ошибка #ЗНАЧ! (#VALUE!) в условиях

    • Причина: Несовпадение размеров массивов при использовании операторов. Например, попытка сравнить столбец из 10 строк со столбцом из 5 строк без функции FILTER.
    • Решение: Убедитесь, что все диапазоны в условии имеют одинаковую высоту (количество строк).
  3. Формула не обновляется

    • Причина: Использование старых версий Excel или ручного режима пересчета.
    • Решение: Динамические массивы работают только в Excel 365 и Excel 2021+. В старых версиях придется использовать Ctrl+Shift+Enter и функции типа ИНДЕКС/ПОИСКПОЗ.

Осторожно с ссылками: При копировании формулы массива убедитесь, что ссылки на диапазоны закреплены правильно (используйте $, например $A$2:$A$100), если вы планируете перемещать саму формулу, хотя для динамических массивов это требуется реже благодаря относительным ссылкам внутри FILTER.

FAQ: Вопросы по работе с массивами

В чем разница между обычным диапазоном и массивом? Обычный диапазон — это просто набор ячеек. Массив — это структура данных в памяти Excel, которая может быть результатом вычисления функции. Динамический массив автоматически занимает столько ячеек, сколько нужно для отображения результата.

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

Что делать, если нужно зафиксировать результат массива? Если вы хотите превратить «живой» массив в статические значения, выделите область с результатами, скопируйте её (Ctrl+C) и вставьте как значения (Ctrl+Shift+V или через контекстное меню «Специальная вставка»).

Работают ли эти формулы в Google Таблицах? Да, Google Таблицы поддерживают большинство функций динамических массивов (FILTER, SORT, UNIQUE, QUERY), синтаксис практически идентичен, за исключением разделителей (там часто используется точка с запятой или запятая в зависимости от локали).