Умножение таблиц в Excel: все способы от элементарных до профессиональных

Введение: зачем умножать таблицы в Excel?

Умножение таблиц (матриц) в Microsoft Excel — задача, с которой сталкиваются аналитики, инженеры и финансовые специалисты. В отличие от привычного сложения или вычитания ячеек, перемножение двухмерных массивов требует специальных подходов: от ручного ввода формул до использования Power Query или VBA. Но зачем это нужно на практике?

Представьте: у вас есть таблица с данными о продажах по регионам (строки) и продуктам (столбцы), а вторая таблица содержит коэффициенты сезонности. Перемножив их, вы получите скорректированный прогноз продаж. Или другой пример: в инженерных расчётах матричное умножение помогает моделировать нагрузки на конструкции. Без этого инструмента многие аналитические задачи пришлось бы решать вручную — долго и с риском ошибок.

Ключевая сложность: Excel не поддерживает прямую команду "умножить таблицу А на таблицу Б". Но обходные пути есть — и мы разберём их все, от самых простых до автоматизированных.

📊 Как часто вы работаете с матрицами в Excel?
Ежедневно
Раз в неделю
Редко
Никогда

Способ 1: Ручной ввод формулы умножения матриц

Самый универсальный, но трудоёмкий метод — использовать формулу массива с функцией СУММПРОИЗВ. Он подходит для таблиц любого размера, если количество столбцов первой матрицы совпадает с числом строк второй (условие согласованности).

Алгоритм действий:

  1. Выделите область для результата (размером строки первой матрицы × столбцы второй).
  2. Введите формулу:
    =СУММПРОИЗВ(А1:С1;$A$4:$C$6)

    где A1:C1 — первая строка первой матрицы, а $A$4:$C$6 — вторая матрица (абсолютные ссылки!).

  3. Завершите ввод сочетанием Ctrl+Shift+Enter (в новых версиях Excel формула автоматически станет массивом).
  4. Растяните формулу на всю область результата.

Пример для матриц 2×3 и 3×2:

Матрица 1×Матрица 2= Результат
123451922
45667
894350
⚠️ Внимание: Если после нажатия Ctrl+Shift+Enter формула не обрамляется фигурными скобками {...}, проверьте настройки региональных параметров — в некоторых локализациях разделителем аргументов служит ;, а не ,.

Проверьте согласованность размеров (столбцы 1-й = строкам 2-й)

Выделите область результата (она должна быть пустой!)

Используйте абсолютные ссылки ($) для второй матрицы

Завершайте ввод горячими клавишами, а не Enter-->

Способ 2: Функция МУМНОЖ (для Excel 2013 и новее)

В современных версиях Excel появилась специализированная функция МУМНОЖ (MMULT), которая упрощает задачу. Она автоматически обрабатывает массивы и не требует ручного растягивания формул.

Синтаксис:

=МУМНОЖ(массив1; массив2)

Особенности использования:

  • 🔹 Оба массива должны быть согласованными (число столбцов первого = числу строк второго).
  • 🔹 Результат выводится в левую верхнюю ячейку выделенного диапазона.
  • 🔹 В Excel 365 функция поддерживает динамические массивы — результат автоматически "проливается" на нужную область.
  • 🔹 Для старых версий (2013–2019) после ввода формулы нажмите Ctrl+Shift+Enter.

Пример для тех же матриц 2×3 и 3×2:

=МУМНОЖ(A1:C2; E1:F3)
⚠️ Внимание: Если в результате отображается ошибка #ЗНАЧ!, проверьте:
  • Нет ли текстовых значений в исходных данных (все ячейки должны содержать числа).
  • Совпадают ли размеры массивов (например, нельзя умножить 2×3 на 2×2).

Способ 3: Power Query для больших таблиц

Если вам нужно умножить таблицы размером более 100×100 ячеек, ручные методы становятся неэффективными. Здесь на помощь приходит Power Query — инструмент ETL (извлечение, преобразование, загрузка), встроенный в Excel 2016+.

Алгоритм:

  1. Преобразуйте исходные таблицы в "умные таблицы" (Ctrl+T).
  2. Перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  3. В редакторе Power Query создайте пользовательский столбец с формулой умножения (используйте язык M).
  4. Объедините таблицы по ключевым столбцам (если требуется).

Пример кода на языке M для умножения строки на столбец:


= Table.AddColumn(

Table1,

"Result",

each List.Sum(List.Transform(

{1, 2, 3}, // Коэффициенты второй матрицы

(x) => x * [Column1] // Умножение на текущую строку

))

)

Преимущества метода:

  • 🔹 Обрабатывает миллионы строк без зависаний.
  • 🔹 Позволяет комбинировать умножение с другими преобразованиями (фильтрация, сортировка).
  • 🔹 Автоматически обновляет результат при изменении исходных данных.
Как ускорить работу Power Query?

Используйте "Свертку столбцов" (Group By) для предварительной агрегации данных.

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

Для очень больших файлов сохраняйте данные в бинарном формате (.bkp) вместо Excel.

Способ 4: VBA для автоматизации

Если вам нужно умножать таблицы регулярно, имеет смысл написать макрос на VBA. Это устранит ручной ввод формул и сократит время обработки.

Пример кода для умножения двух матриц:


Sub MatrixMultiply()

Dim Matrix1 As Variant, Matrix2 As Variant, Result() As Double

Dim i As Long, j As Long, k As Long

Dim Rows1 As Long, Cols1 As Long, Rows2 As Long, Cols2 As Long

' Чтение исходных матриц

Matrix1 = Range("A1:C2").Value ' Первая матрица (2x3)

Matrix2 = Range("E1:F3").Value ' Вторая матрица (3x2)

Rows1 = UBound(Matrix1, 1)

Cols1 = UBound(Matrix1, 2)

Rows2 = UBound(Matrix2, 1)

Cols2 = UBound(Matrix2, 2)

' Проверка согласованности

If Cols1 <> Rows2 Then

MsgBox "Невозможно умножить: число столбцов первой матрицы не равно числу строк второй!"

Exit Sub

End If

' Инициализация результирующей матрицы

ReDim Result(1 To Rows1, 1 To Cols2)

' Умножение

For i = 1 To Rows1

For j = 1 To Cols2

For k = 1 To Cols1

Result(i, j) = Result(i, j) + Matrix1(i, k) * Matrix2(k, j)

Next k

Next j

Next i

' Вывод результата

Range("H1").Resize(Rows1, Cols2).Value = Result

End Sub

Как использовать:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Настройте диапазоны Range("A1:C2") и Range("E1:F3") под свои данные.
  4. Запустите макрос клавишей F5.
⚠️ Внимание: Макросы могут конфликтовать с защитой листа. Перед запуском проверьте, разблокированы ли ячейки для записи (Формат → Защита → Защищаемая ячейка).

Способ 5: Онлайн-калькуляторы и надстройки

Если вам нужно разово умножить матрицы или вы работаете в Excel Online (где нет Power Query/VBA), воспользуйтесь внешними инструментами:

  • 🌐 Matrix Calculator (matrixcalc.org) — бесплатный веб-сервис с поддержкой до 20×20.
  • 📊 Wolfram Alpha — введите запрос "matrix {{1,2},{3,4}} * {{5,6},{7,8}}".
  • 🔧 Надстройка "Matrix Operations" для Excel (плагины из Microsoft AppSource).

Как импортировать результат обратно в Excel:

  1. Скопируйте результирующую матрицу из онлайн-калькулятора.
  2. В Excel выделите левую верхнюю ячейку области вставки.
  3. Используйте Специальная вставка → Значения (или Ctrl+Alt+V → V).

Предупреждение: онлайн-сервисы не подходят для конфиденциальных данных — передача информации происходит через сторонние серверы.

Сравнение методов: какой выбрать?

Выбор способа зависит от размера таблиц, частоты использования и ваших навыков. Ниже сравнительная таблица:

МетодМакс. размерСкоростьАвтоматизацияСложность
Ручная формула~50×50МедленноНетНизкая
МУМНОЖ~100×100СреднеЧастичноСредняя
Power QueryМиллионы строкБыстроДаВысокая
VBA~1000×1000Очень быстроДаВысокая
Онлайн-сервисы~20×20МгновенноНетНизкая

Рекомендации:

  • 📌 Для разовых задач с маленькими матрицами (до 10×10) хватит СУММПРОИЗВ или МУМНОЖ.
  • 📌 Для еженедельных отчётов с фиксированной структурой напишите VBA-макрос.
  • 📌 Для Big Data (более 10 000 строк) используйте Power Query или специализированное ПО (Python, R).

FAQ: Частые вопросы по умножению таблиц

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

Да, но только если число столбцов первой матрицы равно числу строк второй. Например, матрицу 2×3 можно умножить на 3×4, но не на 2×2. Это правило называется условием согласованности.

Почему вместо результата отображается #ЗНАЧ!?

Ошибка #ЗНАЧ! возникает по трём причинам:

  1. В исходных данных есть текст или пустые ячейки (все элементы должны быть числами).
  2. Размеры матриц не согласованы (см. вопрос выше).
  3. Вы забыли нажать Ctrl+Shift+Enter для формулы массива (в Excel 2019 и старше это не требуется).

Как умножить таблицу на число (скаляр)?

Для этого не нужны специальные функции. Просто умножьте каждую ячейку на число:

=A1*5

и растяните формулу на весь диапазон. Или используйте Специальную вставку → Умножить:

  1. Скопируйте ячейку со скаляром (например, 5).
  2. Выделите таблицу, куда нужно применить умножение.
  3. Выберите Главная → Вставить → Специальная вставка → Умножить.

Есть ли разница между МУМНОЖ и ручным методом?

По результату — нет, но МУМНОЖ имеет преимущества:

  • Короче запись (одна функция вместо вложенных СУММПРОИЗВ).
  • В Excel 365 поддерживает динамические массивы (автоматическое заполнение области).
  • Меньше риск ошибок при копировании формул.

Однако в старых версиях Excel (2010 и ранее) МУМНОЖ недоступна — придётся использовать ручной метод.

Можно ли умножить три таблицы подряд?

Да, но нужно делать это поэтапно:

  1. Умножьте первые две матрицы (например, МУМНОЖ(A1:B2; D1:F2)).
  2. Скопируйте результат в новый диапазон (как значения).
  3. Умножьте полученную матрицу на третью: МУМНОЖ(H1:I2; K1:L3).

В VBA или Power Query это можно сделать в одном шаге, но вручную — только последовательно.