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

Умножение матриц в Microsoft Excel — задача, с которой сталкиваются студенты, инженеры и аналитики данных. Хотя программа не имеет встроенной кнопки "умножить матрицы", эту операцию легко выполнить с помощью специальных функций. Главное — понимать основные правила матричного умножения: количество столбцов первой матрицы должно совпадать с количеством строк второй, а результат будет иметь размерность "строки первой × столбцы второй".

Многие пользователи ошибочно пытаются перемножить матрицы через стандартное умножение ячеек (*), но это приводит к неверным результатам. В этой статье мы разберём три рабочих метода: через функцию МУМНОЖ (для старых версий), динамические массивы в Excel 365 и ручной ввод формул. Особое внимание уделим типичным ошибкам и нюансам работы с большими массивами данных.

Если вы никогда не работали с матрицами, не переживайте — мы начнём с азов. Для опытных пользователей приготовили продвинутые приёмы, включая умножение с условиями и обработку неквадратных матриц. Важно: в Excel 2019 и новее синтаксис функций для матриц изменился — мы покажем оба варианта.

Что такое умножение матриц и почему нельзя использовать знак "*"

Умножение матриц — это не поэлементная операция, а сложный алгоритм, где каждый элемент результирующей матрицы вычисляется как сумма произведений соответствующих элементов строки первой матрицы и столбца второй. Например, для матриц 2×3 и 3×2 результат будет 2×2.

Вот почему простой знак * не работает:

  • 🔢 Он умножает только две ячейки, а не целые массивы
  • 📊 Не учитывает правила размерности матриц
  • ❌ Приводит к ошибке #ЗНАЧ! при попытке умножить диапазоны

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

📊 Какую версию Excel вы используете?
Excel 2010-2016
Excel 2019
Excel 365 (онлайн/десктоп)
Другую

Метод 1: Функция МУМНОЖ (для Excel 2016 и старше)

Это классический способ, работающий во всех версиях Excel до 2019 года. Функция МУМНОЖ (или MMULT в английской версии) требует строгого соблюдения размерностей матриц.

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

  1. Выделите диапазон для результата (количество строк = первой матрице, столбцов = второй)
  2. Введите формулу =МУМНОЖ(диапазон1; диапазон2)
  3. Нажмите Ctrl+Shift+Enter (это создаст формулу массива)

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

=МУМНОЖ(A1:C2; E1:F3)

Проверить размерности матриц (столбцы первой = строкам второй)

Выделить пустой диапазон для результата

Убедиться, что в ячейках нет текста (только числа)

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

⚠️ Внимание: Если забыть нажать Ctrl+Shift+Enter, формула вернёт только первый элемент результата! В новых версиях Excel это требование отменили, но в 2016 и старше оно обязательно.
Первая матрица (A)Вторая матрица (B)Результат (A×B)
1 2 3
4 5 6
7 8
9 10
11 12
58 64
139 154
0 1
1 0
5 6
7 8
7 8
5 6

Метод 2: Динамические массивы в Excel 365 (самый простой способ)

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

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

=MMULT(A1:C2, E1:F3)

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

  • 🚀 Автоматическое определение размера результата
  • 🔄 Динамическое обновление при изменении исходных данных
  • 📱 Работает в мобильной версии Excel

Ограничение: в одной книге не могут одновременно использоваться формулы массива старого типа (Ctrl+Shift+Enter) и новые динамические массивы. При попытке смешать их Excel выдаст предупреждение.

Метод 3: Ручной ввод формул (для понимающих матричную алгебру)

Этот способ подходит для небольших матриц (2×2, 3×3) или когда нужно понять сам процесс умножения. Здесь мы вручную пишем формулу для каждого элемента результирующей матрицы.

Для матриц 2×2 формула первого элемента будет:

=A1*E1 + B1*E2

Второго элемента первой строки:

=A1*F1 + B1*F2

Такой подход помогает:

  • 🧠 Лучше понять принцип умножения матриц
  • 🔍 Отладить расчёты при ошибках
  • ⚙️ Создать кастомные формулы с дополнительными условиями
⚠️ Внимание: При ручном методе легко ошибиться в индексах ячеек. Всегда проверяйте формулы для крайних элементов матрицы (первого и последнего), чтобы убедиться в правильности шаблона.
Как проверить правильность ручного умножения?

Сравните результат с автоматическим методом (МУМНОЖ/MMULT).

Используйте онлайн-калькуляторы матриц для контрольной проверки.

Помните, что результат A×B не равен B×A (матричное умножение не коммутативно).

Типичные ошибки и как их исправить

Даже опытные пользователи сталкиваются с проблемами при умножении матриц. Вот самые распространённые ошибки и их решения:

ОшибкаПричинаРешение
#ЗНАЧ!Несовпадение размерностейПроверить количество столбцов первой матрицы и строк второй
#ССЫЛКА!Неверный диапазон результатаВыделить правильный диапазон перед вводом формулы
Один результат вместо матрицыЗабыли Ctrl+Shift+Enter (Excel 2016)Повторить ввод формулы с правильной комбинацией клавиш
#ЧИСЛО!Текст в ячейках вместо чиселПроверить формат ячеек (должен быть "Общий" или "Числовой")

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

Продвинутые приёмы: умножение с условиями и большие матрицы

Для сложных задач стандартного умножения матриц может быть недостаточно. Рассмотрим несколько продвинутых сценариев:

1. Умножение с игнорированием нулевых значений:

=MMULT(IF(A1:C2<>0, A1:C2, 0), IF(E1:F3<>0, E1:F3, 0))

Эта формула заменяет все нули на 0 перед умножением (полезно для разреженных матриц).

2. Нормализация результата:

  • 📉 Делите результат на максимальное значение: =MMULT(A1:C2, E1:F3)/MAX(MMULT(A1:C2, E1:F3))
  • 📈 Приводите к диапазону 0-1: =(MMULT(A1:C2, E1:F3)-MIN(MMULT(...)))/(MAX(MMULT(...))-MIN(MMULT(...)))

3. Работа с большими матрицами (100×100 и более):

  • 🐢 Разбивайте на блоки по 50×50 для ускорения расчётов
  • 💾 Сохраняйте промежуточные результаты в отдельные листы
  • ⚡ Используйте Power Query для предварительной обработки данных

Альтернативные способы: надстройки и VBA

Если вам часто приходится работать с матрицами, стоит рассмотреть дополнительные инструменты:

1. Надстройка "Matrix Functions":

  • 📥 Бесплатная надстройка с расширенными матричными функциями
  • 🔧 Включает инверсию, транспонирование, вычисление определителя
  • 🌐 Скачать можно на официальном сайте Microsoft AppSource

2. Макросы VBA для автоматизации:

Function MatrixMultiply(rng1 As Range, rng2 As Range) As Variant

' Код для умножения матриц через VBA

' Требует знаний программирования

End Function

3. Power Query (Get & Transform):

  • 🔄 Подходит для умножения матриц из разных источников (SQL, CSV)
  • 📊 Позволяет комбинировать умножение с другими преобразованиями
  • 📎 Результат можно выгрузить обратно в Excel или в Power Pivot

Для большинства задач стандартных функций Excel достаточно, но в специфических случаях (например, умножение сотен матриц в цикле) эти инструменты могут сэкономить часы работы.

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

Можно ли умножить матрицу на вектор?

Да, вектор — это частный случай матрицы (одна строка или один столбец). Используйте те же функции МУМНОЖ или MMULT, соблюдая правило размерностей. Например, матрица 3×3 на вектор-столбец 3×1 даст вектор-столбец 3×1.

Почему результат умножения не симметричный?

Матричное умножение не коммутативно — A×B ≠ B×A. Это нормально и соответствует математическим правилам. Симметричный результат получается только при умножении некоторых специальных матриц (например, диагональных).

Как умножить более двух матриц?

Используйте вложенные функции: =MMULT(MMULT(A1:C2, E1:F3), H1:I2). Порядок важен! Для четырёх матриц: =MMULT(MMULT(MMULT(A,B),C),D). В Excel 2016 и старше не забудьте Ctrl+Shift+Enter.

Можно ли умножать матрицы с текстом?

Нет, функция МУМНОЖ работает только с числовыми данными. Текстовые значения (включая пустые ячейки) приводят к ошибке. Предварительно очистите данные функцией ЕЧИСЛО или замените текст на ноли.

Как проверить правильность умножения?

Сравните результат с ручным расчётом хотя бы для первого элемента. Например, для матриц выше: (1×7 + 2×9 + 3×11) = 58 — совпадает с первым элементом результата. Также можно использовать онлайн-калькуляторы (Wolfram Alpha, Symbolab).