От статических формул к динамическим массивам в Excel

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

Массивы в Excel позволяют выполнять вычисления над целыми диапазонами данных за одну операцию, экономя время на копировании формул. В современных версиях (Excel 365, 2021) они работают автоматически благодаря функции «пролива» (spill), тогда как в старых версиях требовали комбинации Ctrl+Shift+Enter. Эта статья научит вас создавать матрицы, перемножать их, решать системы уравнений и использовать новые динамические функции для анализа данных без макросов.

Понятие массива и отличие от обычной формулы

Массив — это набор значений, который Excel обрабатывает как единое целое. Он может быть одномерным (строка или столбец) или двумерным (матрица: строки и столбцы).

Главное отличие от стандартных вычислений:

  • Обычная формула: =A1*B1 возвращает одно число в одной ячейке.
  • Массивная формула: =A1:A10*B1:B10 может вернуть сразу 10 результатов в соседние ячейки или одно агрегированное значение (например, сумму произведений).

Если у вас Excel 365 или 2021+, вам не нужно выделять диапазон перед вводом формулы. Просто напишите её в одной ячейке, и результат автоматически заполнит нужную область («прольется»).

Работа с массивами в разных версиях Excel

Подход к вводу формул зависит от версии программы. Неправильный выбор метода приведет к ошибкам или некорректному результату.

Старые версии (до 2019): ввод через CSE

В классическом Excel массивные формулы требуют специального подтверждения:

  1. Выделите диапазон ячеек под результат (строго по размеру ожидаемого массива).
  2. Введите формулу, например =A1:A5*B1:B5.
  3. Нажмите Ctrl + Shift + Enter.
  4. Excel обернет формулу в фигурные скобки: {=A1:A5*B1:B5}. Редактировать такие формулы можно только целиком, удаляя скобки вручную нельзя.

Новые версии (365, 2021, Онлайн): динамические массивы

Здесь работает принцип «одна формула — много результатов»:

  1. Введите формулу в одну ячейку, например =A1:A5*B1:B5.
  2. Нажмите Enter.
  3. Excel сам определит размер результата и заполнит соседние ячейки.

Ошибка #СПОЛН! (#SPILL!) возникает, если на пути «пролива» есть занятые ячейки. Очистите диапазон под формулой, чтобы она сработала корректно.

Ключевые функции для работы с матрицами

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

Основные матричные операции

ОперацияФункцияОписаниеТребования к размерам
Транспонирование=TRANSPOSE(массив)Меняет строки местами со столбцами.Любые
Обратная матрица=MINVERSE(массив)Находит обратную матрицу.Квадратная (N×N)
Умножение матриц=MMULT(массив1; массив2)Матричное произведение.Столбцы 1-й = Строкам 2-й
Определитель=MDETERM(массив)Вычисляет детерминант.Квадратная (N×N)

Пример умножения: Чтобы перемножить матрицу 2×3 (диапазон A1:C2) на матрицу 3×2 (диапазон E1:G3), используйте формулу: =MMULT(A1:C2; E1:G3) Результатом будет матрица размером 2×2.

Новые динамические функции (Excel 365)

Эти функции возвращают массивы и значительно упрощают обработку списков:

  • SEQUENCE(строки; [столбцы]) — генерирует последовательность чисел. Пример: =SEQUENCE(3;2) создаст таблицу 3×2 с числами от 1 до 6.
  • RANDARRAY(строки; [столбцы]) — заполняет диапазон случайными числами.
  • FILTER(массив; условие) — отбирает данные по критерию, возвращая динамический список.
  • UNIQUE(массив) — оставляет только уникальные значения из списка.
  • SORT(массив) — сортирует диапазон «на лету».

Практические примеры применения

Решение системы линейных уравнений

Матричный метод позволяет быстро найти неизвестные переменные. Для системы вида $AX = B$ решение находится по формуле $X = A^{-1}B$.

В Excel это делается одной формулой: =MMULT(MINVERSE(A1:B2); D1:D2) Где A1:B2 — матрица коэффициентов, а D1:D2 — столбец свободных членов.

Анализ продаж: Топ товаров

Вместо сложных сводных таблиц можно получить топ-5 товаров по выручке одной формулой. Если в столбце A названия, а в B суммы: =SORTBY(FILTER(A2:B100; B2:B100>0); B2:B100; -1) Эта формула отфильтрует нулевые значения и отсортирует остаток по убыванию. Результат автоматически обновится при изменении данных.

Генерация тестовых данных

Для проверки отчетов часто нужна большая таблица с данными. Формула создаст матрицу 10×5 со случайными числами от 1 до 100: =RANDARRAY(10; 5; 1; 100; ИСТИНА) Последний аргумент ИСТИНА означает, что числа будут целыми.

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

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

  1. #ЗНАЧ! (#VALUE!)

    • Причина: Несовместимость размеров матриц при умножении (MMULT). Количество столбцов первого массива должно строго равняться количеству строк второго.
    • Решение: Проверьте диапазоны. Используйте функцию СТРОКИ() и СТОЛБЦЫ() для диагностики.
  2. #СПОЛН! (#SPILL!)

    • Причина: Ячейки, куда должен «пролиться» результат, заняты текстом или другими формулами.
    • Решение: Очистите область вокруг активной ячейки с формулой. Также ошибка возникает, если массив пытается «пролиться» через объединенные ячейки.
  3. #ССЫЛКА! (#REF!) в динамических массивах

    • Причина: Исходные данные, на которые ссылается формула, были удалены или сдвинуты так, что ссылка потерялась.
    • Решение: Восстановите исходный диапазон или исправьте ссылки.
  4. Формула не копируется вниз

    • Причина: В Excel 365 одна формула занимает весь диапазон результата. Копировать её внутрь этого диапазона нельзя.
    • Решение: Это нормальное поведение. Изменяйте только первую ячейку формулы (верхний левый угол).

Часто задаваемые вопросы (FAQ)

Можно ли использовать именованные диапазоны в матричных формулах? Да, это даже рекомендуется для читаемости. Например, присвойте имя Prices диапазону A1:A10 и используйте =Prices*1.2.

Работают ли эти функции в Excel для веб (Online)? Да, все динамические функции (FILTER, SORT, UNIQUE, SEQUENCE) и классические матричные (MMULT, MINVERSE) полностью поддерживаются в браузерной версии Excel.

Как превратить динамический массив в статические значения? Выделите полученный результат, скопируйте его (Ctrl+C) и вставьте как значения (Ctrl+Alt+V → «Значения»). Связь с формулой разорвется.

Что делать, если нужен старый режим ввода (CSE) в новой версии? Специально включать его не нужно. Если формула возвращает одно значение, она ведет себя как обычная. Если вы хотите принудительно ограничить вывод, используйте функцию @ (оператор пересечения) перед именем функции, например =@SORT(A1:A10), чтобы получить только первое значение.