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

Умножение массивов в Microsoft Excel — задача, с которой сталкиваются и новички, и профессионалы. Кто-то пытается перемножить две колонки по строкам, кому-то нужно получить матричное произведение, а третьим требуется поэлементное умножение с последующим суммированием. В этой статье разберём все актуальные способы — от базовых формул до современных функций MMULT и BYROW, которые появились в последних версиях Excel.

Многие ошибочно думают, что для работы с массивами обязательно знать VBA или устанавливать надстройки. На самом деле, 90% задач решаются стандартными инструментами программы. Главное — понимать разницу между поэлементным умножением (когда каждый элемент первого массива умножается на соответствующий элемент второго) и матричным (где результат зависит от суммы произведений строк и столбцов). Мы покажем оба подхода с реальными примерами.

В статье вы найдёте:

  • 🔹 Базовые формулы для умножения колонок (SUMPRODUCT, ARRAYFORMULA)
  • 🔹 Матричные операции с MMULT и правила размерностей
  • 🔹 Динамические массивы в Excel 365: BYROW, MAP, LAMBDA
  • 🔹 Типичные ошибки и как их избежать (включая #VALUE! и #N/A)

Все примеры протестированы в Excel 2019 и Microsoft 365 (2026 год). Если вы используете более старую версию (2016 или ранее), некоторые функции могут быть недоступны — мы отдельно укажем аналоги.

📊 Какую версию Excel вы используете?
Excel 2016 или старше
Excel 2019
Microsoft 365 (подписка)
LibreOffice Calc
Другой

1. Поэлементное умножение массивов: формула для каждой ячейки

Самая простая задача — умножить два массива одинакового размера поэлементно. Например, у вас есть цены в колонке A и количества в колонке B, а нужно получить сумму заказа в колонке C. Здесь не требуется матричная математика: достаточно перемножить A1*B1, A2*B2 и так далее.

Для этого:

  1. Введите в первую ячейку результата (например, C1) формулу: =A1*B1.
  2. Протяните формулу вниз до конца данных (зацепите правый нижний угол ячейки и потяните).

Если массивы расположены в строках (например, A1:D1 и A2:D2), используйте ту же логику, но протягивайте формулу вправо. Этот метод работает во всех версиях Excel, включая Excel 2003.

Для массивов с разными размерами поэлементное умножение невозможно — Excel выдаст ошибку #N/A. В этом случае используйте SUMPRODUCT (разберём далее) или дополните массивы до одинакового размера нулями.

2. Умножение массивов с суммированием: функция SUMPRODUCT

Функция SUMPRODUCT — универсальный инструмент для работы с массивами. Она не только перемножает элементы, но и суммирует результаты. Классический пример: расчёт общей стоимости заказа, где цены и количества хранятся в отдельных колонках.

Синтаксис:

=SUMPRODUCT(массив1; [массив2]; [массив3]; ...)

Примеры использования:

  • 📌 =SUMPRODUCT(A1:A10; B1:B10) — сумма произведений A1*B1 + A2*B2 + ... + A10*B10.
  • 📌 =SUMPRODUCT((A1:A5=10)*B1:B5) — сумма значений из B1:B5, где в A1:A5 стоит число 10 (здесь (A1:A5=10) возвращает массив {ИСТИНА;ЛОЖЬ;...}, который Excel преобразует в {1;0;...}).
  • 📌 =SUMPRODUCT(A1:A3; B1:B3; C1:C3) — умножение трёх массивов с последующим суммированием.

Важное преимущество SUMPRODUCT — она работает как формула массива без необходимости нажимать Ctrl+Shift+Enter (в отличие от старых версий Excel). Также она игнорирует текстовые значения, что полезно для "грязных" данных.

⚠️ Внимание: Если в массивах разное количество элементов, SUMPRODUCT использует минимальную длину. Например, =SUMPRODUCT(A1:A10; B1:B5) просуммирует только первые 5 пар (A1*B1 до A5*B5).

3. Матричное умножение: функция MMULT

Когда требуется матричное произведение (как в математике), используйте функцию MMULT. Она возвращает матрицу, где элемент на позиции [i,j] равен сумме произведений элементов i-й строки первого массива и j-го столбца второго.

Синтаксис:

=MMULT(массив1; массив2)

Правила работы с MMULT:

  • 🔢 Число столбцов первого массива должно совпадать с числом строк второго массива. Например, если первый массив имеет размер 3×4, второй должен быть 4×N (где N — любое число).
  • 📏 Результат будет иметь размер M×N, где M — число строк первого массива.
  • 🔄 В старых версиях Excel (до 2019) MMULT требует ввода как формулы массива (нажать Ctrl+Shift+Enter). В Excel 365 это не нужно.

Пример: умножим матрицу 2×3 на 3×2.

Матрица 1 (A1:C2)Матрица 2 (E1:F3)Результат (G1:H2)
1
2
3
5
6
7
8
9
10
1×5+2×8+3×7=43
1×6+2×9+3×10=54
4
5
6
11
12
13
14
15
16
4×11+5×14+6×13=188
4×12+5×15+6×16=217

Формула в ячейке G1 (затем протянуть вправо и вниз):

=MMULT(A1:C2; E1:F3)
⚠️ Внимание: Если после ввода MMULT вы видите только одно значение, а не матрицу — вы забыли протянуть формулу на нужный диапазон или не нажали Ctrl+Shift+Enter в старых версиях Excel.

4. Динамические массивы в Excel 365: BYROW, MAP, LAMBDA

В Microsoft 365 и Excel 2021 появились динамические массивы — функции, которые автоматически "проливаются" на соседние ячейки. Для умножения массивов полезны:

  • 🔹 BYROW — применяет формулу к каждой строке массива.
  • 🔹 MAP — поэлементная обработка (аналог "векторных" операций в Python).
  • 🔹 LAMBDA — создание пользовательских функций для массивов.

Пример 1: Умножить каждую строку массива A1:B3 на вектор D1:D3 (поэлементно по строкам):

=BYROW(A1:B3; LAMBDA(строка; строка*D1:D3))

Пример 2: Поэлементное умножение двух массивов A1:B3 и D1:E3:

=MAP(A1:B3; D1:E3; LAMBDA(a; b; a*b))

Преимущества динамических массивов:

  • ✅ Нет нужды протягивать формулы — результат автоматически заполняет нужный диапазон.
  • ✅ Поддержка LAMBDA позволяет создавать сложные вычисления без VBA.
  • ✅ Работают с пролитыми диапазонами (spill ranges), что упрощает анализ данных.
Как отключить "проливание" динамических массивов?

В Excel 365 можно заблокировать автоматическое заполнение соседних ячеек. Для этого перейдите в Файл → Параметры → Формулы и снимите галочку с пункта Динамические массивы. Однако это отключит функционал для всех формул, поэтому используйте осторожно.

5. Умножение массивов с условиями: FILTER и LET

Если нужно умножать массивы с фильтрацией (например, только положительные значения), используйте комбинацию FILTER + MMULT или SUMPRODUCT.

Пример: Перемножить массивы A1:A10 и B1:B10, но только для строк, где A1:A10 > 5:

=SUMPRODUCT(--(A1:A10>5); A1:A10; B1:B10)

Здесь --(A1:A10>5) преобразует логические значения {ИСТИНА;ЛОЖЬ;...} в {1;0;...}.

В Excel 365 можно использовать FILTER:

=SUM(FILTER(A1:A10; A1:A10>5) * FILTER(B1:B10; A1:A10>5))

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

=LET(

отфильтрованный_A; FILTER(A1:A10; A1:A10>5);

отфильтрованный_B; FILTER(B1:B10; A1:A10>5);

SUM(отфильтрованный_A * отфильтрованный_B)

)

🔲 Убедитесь, что ваша версия Excel поддерживает FILTER (365 или 2021)

🔲 Проверьте, что условие фильтрации возвращает хотя бы одну строку

🔲 Для больших массивов (>10 000 строк) используйте SUMPRODUCT вместо FILTER

-->

6. Типичные ошибки и их решения

При работе с массивами в Excel пользователи часто сталкиваются с ошибками. Разберём самые распространённые:

ОшибкаПричинаРешение
#VALUE!Несовпадение размеров массивов для MMULT или текстовые значения в данных.Проверьте размеры матриц (число столбцов 1-й = числу строк 2-й). Удалите текст или используйте IFERROR.
#N/AОтсутствуют данные для фильтрации (например, FILTER не нашёл ни одной строки).Добавьте обработку ошибок: =IFERROR(FILTER(...); 0).
#SPILL!На пути "проливания" динамического массива есть непустые ячейки.Очистите ячейки справа/снизу или переместите формулу в свободное место.
Неправильный результатЗабыли нажать Ctrl+Shift+Enter в Excel 2016/2019 для формул массива.Повторите ввод формулы с правильной комбинацией клавиш.

Критическая ошибка: если в результате MMULT вы видите одно значение вместо матрицы, это означает, что Excel не распознаёт формулу как массива. В Excel 365 проверьте, не отключены ли динамические массивы в настройках. В старых версиях — перевведите формулу с Ctrl+Shift+Enter.

Ещё одна частая проблема — округление результатов. Например, MMULT может возвращать значения вроде 1.23E-14 вместо нуля. Это связано с особенностями вычислений с плавающей запятой. Чтобы исправить:

=IF(ABS(MMULT(A1:B2; D1:E2))<1E-10; 0; MMULT(A1:B2; D1:E2))

FAQ: Ответы на частые вопросы

Можно ли умножить массивы разного размера?

Для поэлементного умножения (например, A1:A5 * B1:B3) — нет, Excel выдаст ошибку. Но можно:

  • Дополнить меньший массив нулями до размера большего.
  • Использовать SUMPRODUCT для суммирования произведений (он берёт минимальную длину).
Как умножить массив на число?

Просто умножьте диапазон на число:

  • Для статического результата: =A1:A10*5 (в Excel 365 "прольётся" автоматически).
  • В старых версиях: введите =A1:A10*5 и нажмите Ctrl+Shift+Enter.
Почему MMULT возвращает #VALUE! даже при правильных размерах?

Проверьте:

  • В массивах нет текстовых значений (например, пустых ячеек или надписей "N/A").
  • Нет скрытых символов (пробелов, неразрывных пробелов). Используйте TRIM для очистки.
  • В Excel 2016/2019 вы забыли ввести формулу как массива (Ctrl+Shift+Enter).
Как умножить три массива?

Используйте вложенные функции:

  • Для поэлементного умножения: =A1:A5 B1:B5 C1:C5 (в Excel 365).
  • Для матричного умножения: =MMULT(MMULT(A1:B2; D1:E3); G1:H2).

Порядок важен: MMULT(A; MMULT(B; C)) не то же самое, что MMULT(MMULT(A; B); C)!

Можно ли умножать массивы в Google Sheets?

Да, в Google Таблицах поддерживаются:

  • ARRAYFORMULA вместо Ctrl+Shift+Enter (например, =ARRAYFORMULA(A1:A5*B1:B5)).
  • MMULT с теми же правилами размерностей.
  • BYROW, MAP, LAMBDA (аналогично Excel 365).

Отличие: в Google Sheets нет "проливания" динамических массивов — нужно явно указывать диапазон вывода.