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

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

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

Особое внимание уделим требованиям к размерности матриц: если у вас матрица А размером 3×4, а матрица В4×2, их можно перемножить (результат будет 3×2). Но если размеры не совпадают (например, 3×3 и 4×4), Excel выдаст ошибку #ЗНАЧ!. Проверьте это перед началом расчётов!

1. Подготовка данных: как правильно ввести матрицы в Excel

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

Вот как это сделать без ошибок:

  • 📌 Введите первую матрицу (А) в диапазон, например, A1:C2 (2 строки × 3 столбца).
  • 📌 Вторую матрицу (В) разместите ниже или правее, например, в A4:B6 (3 строки × 2 столбца). Обратите внимание: количество столбцов А (3) должно совпадать с количеством строк В (3).
  • 📌 Оставьте пустые ячейки вокруг матриц, чтобы результат умножения не перекрывался с исходными данными.

Если матрицы имеют одинаковую размерность (например, обе 3×3), их тоже можно перемножить — результат будет той же размерности. Но если размеры не совместимы, Excel не сможет выполнить операцию.

2. Метод 1: функция МУМНОЖ для старых версий Excel

В Excel 2019 и более ранних версиях для умножения матриц используется функция МУМНОЖ (англ. MMULT). Это массивная функция, поэтому её нужно вводить особым способом — с нажатием Ctrl+Shift+Enter.

Пошаговая инструкция:

  1. Выделите диапазон для результата. Его размер должен соответствовать количеству строк первой матрицы и столбцов второй. Например, если А2×3, а В3×2, результат будет 2×2 (выделите 2 строки и 2 столбца).
  2. Введите формулу: =МУМНОЖ(A1:C2; A4:B6) (замените диапазоны на свои).
  3. Нажмите Ctrl+Shift+Enter. Формула автоматически обернётся в фигурные скобки: {=МУМНОЖ(...)}.

Если вы забудете нажать Ctrl+Shift+Enter, Excel покажет только первый элемент результата, а остальные ячейки останутся пустыми. Это самая распространённая ошибка при работе с МУМНОЖ.

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

Количество столбцов первой матрицы = количеству строк второй|

Использовали ; (точку с запятой) как разделитель аргументов|

Нажали Ctrl+Shift+Enter для массива-->

3. Метод 2: динамические массивы в Excel 365 и 2021

В новых версиях Excel 365 и Excel 2021 функция МУМНОЖ работает иначе — она автоматически "проливается" на соседние ячейки, возвращая полный результат без необходимости нажимать Ctrl+Shift+Enter. Это называется динамическими массивами.

Как это работает:

  • 🔹 Введите формулу =МУМНОЖ(A1:C2; A4:B6) в одну ячейку (например, E1).
  • 🔹 Excel автоматически заполнит соседние ячейки результатами (в данном случае — диапазон E1:F2).
  • 🔹 Если результат не отображается, проверьте настройки: перейдите в Файл → Параметры → Формулы и убедитесь, что включён параметр Динамические массивы.

В Excel 365 функция МУМНОЖ поддерживает матрицы размером до 32767×32767, тогда как в старых версиях лимит — 8192×8192. Это важно для работы с большими наборами данных, например, в нейронных сетях или финансовых моделях.

📊 Какую версию Excel вы используете?
Excel 2010 или старше
Excel 2013-2019
Excel 2021
Excel 365 (подписка)

4. Метод 3: умножение матриц через Power Query (для больших данных)

Если вам нужно умножить матрицы размером более 1000×1000, стандартные функции Excel могут работать медленно или выдавать ошибки. В этом случае поможет Power Query — инструмент для обработки больших данных.

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

  1. Импортируйте обе матрицы в Power Query через Данные → Получить данные → Из таблицы/диапазона.
  2. В редакторе Power Query создайте Индексный столбец для каждой матрицы (вкладка Добавить столбец).
  3. Используйте Слияние запросов (вкладка Главная) с типом объединения Левое внешнее.
  4. Добавьте пользовательский столбец с формулой умножения соответствующих элементов.
  5. Сгруппируйте данные по индексам первой матрицы и просуммируйте результаты.

Этот метод требует знания Power Query, но он значительно быстрее для матриц размером свыше 5000×5000. Подробнее о синтаксисе формул в Power Query читайте в FAQ в конце статьи.

Пример кода для Power Query

let

// Загрузка первой матрицы (A)

Source_A = Excel.CurrentWorkbook(){[Name="Matrix_A"]}[Content],

#"Добавлен индекс" = Table.AddIndexColumn(Source_A, "Index_A", 0, 1, Int64.Type),

// Загрузка второй матрицы (B) и транспонирование

Source_B = Excel.CurrentWorkbook(){[Name="Matrix_B"]}[Content],

#"Транспонировано" = Table.Transpose(Source_B),

#"Добавлен индекс" = Table.AddIndexColumn(#"Транспонировано", "Index_B", 0, 1, Int64.Type),

// Слияние и умножение

Merged = Table.NestedJoin(#"Добавлен индекс", "Index_A", #"Добавлен индекс", "Index_B", "NewColumn", JoinKind.LeftOuter),

#"Развёрнуто" = Table.ExpandTableColumn(Merged, "NewColumn", {"Column1", "Column2"}, {"B_Column1", "B_Column2"}),

#"Добавлено умножение" = Table.AddColumn(#"Развёрнуто", "Product", each [Column1] [B_Column1] + [Column2] [B_Column2])

in

#"Добавлено умножение"

5. Проверка результата: как убедиться в правильности умножения

Ошибки при умножении матриц в Excel часто остаются незамеченными, особенно если матрицы большие. Вот 3 способа проверки:

1️⃣ Ручной расчёт контрольного элемента:

Выберите один элемент результирующей матрицы (например, C11) и проверьте его вручную по формуле:

C11 = A11*B11 + A12*B21 + A13*B31 + ...

Если значения совпадают, остальные элементы, скорее всего, тоже верны.

2️⃣ Сравнение с онлайн-калькулятором:

Скопируйте матрицы в бесплатный онлайн-калькулятор (например, MatrixCalc) и сравните результаты.

3️⃣ Использование функции МОПРЕД:

Для квадратных матриц проверьте детерминант (функция МОПРЕД). Если детерминант произведения матриц (МОПРЕД(МУМНОЖ(A; B))) равен произведению детерминантов (МОПРЕД(A)*МОПРЕД(B)), умножение выполнено корректно.

Метод проверки Применимость Точность
Ручной расчёт элемента Любые матрицы Высокая
Онлайн-калькулятор Матрицы до 20×20 Средняя (зависит от сервиса)
Функция МОПРЕД Только квадратные матрицы Высокая
Сравнение с Python (NumPy) Любые матрицы Максимальная

1) Совпадают ли размеры матриц для умножения.

2) Нет ли текстовых значений в ячейках (Excel воспринимает их как 0).

3) Правильно ли указаны диапазоны в формуле.-->

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

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

⚠️ Внимание: Если после ввода МУМНОЖ результат отображается только в одной ячейке, вы забыли нажать Ctrl+Shift+Enter (для Excel 2019 и старше) или не обновляли Excel 365 до последней версии.
  • 🚨 Ошибка #ЗНАЧ!:
    • Причина: Несовпадение размеров матриц (количество столбцов первой ≠ количеству строк второй).
    • Решение: Проверьте размеры с помощью функции СТРОКА() и СТОЛБЕЦ().
  • 🚨 Ошибка #ССЫЛКА!:
    • Причина: Диапазоны в формуле перекрываются с областью результата.
    • Решение: Переместите матрицы или результат в другой диапазон.
  • 🚨 Ошибка #ЧИСЛО!:
    • Причина: Слишком большие числа (переполнение).
    • Решение: Уменьшите масштаб данных или используйте Power Query.

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

7. Альтернативные способы: VBA и Python в Excel

Если вам нужно умножать матрицы регулярно или работать с очень большими данными, стоит рассмотреть автоматизацию через VBA или интеграцию с Python.

Способ 1: Макрос на VBA

Скопируйте этот код в редактор VBA (Alt+F11), чтобы создать функцию для умножения матриц:

Function MatrixMultiply(Rng1 As Range, Rng2 As Range) As Variant

Dim i As Integer, j As Integer, k As Integer

Dim Result() As Double

Dim Rows1 As Integer, Cols1 As Integer, Rows2 As Integer, Cols2 As Integer

Rows1 = Rng1.Rows.Count

Cols1 = Rng1.Columns.Count

Rows2 = Rng2.Rows.Count

Cols2 = Rng2.Columns.Count

If Cols1 <> Rows2 Then

MatrixMultiply = "Ошибка: несовместимые размеры"

Exit Function

End If

ReDim Result(1 To Rows1, 1 To Cols2)

For i = 1 To Rows1

For j = 1 To Cols2

Result(i, j) = 0

For k = 1 To Cols1

Result(i, j) = Result(i, j) + Rng1.Cells(i, k).Value * Rng2.Cells(k, j).Value

Next k

Next j

Next i

MatrixMultiply = Result

End Function

Теперь в Excel можно использовать =MatrixMultiply(A1:C2; E1:F3) как обычную функцию.

Способ 2: Python через Excel

Если у вас установлен надстройка PyXLL или xlwings, вы можете использовать библиотеку numpy для умножения матриц:

import numpy as np

def matrix_multiply(a, b):

return np.matmul(a, b).tolist()

Этот метод в десятки раз быстрее для матриц размером свыше 1000×1000.

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

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

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

Почему результат умножения матриц в Excel отличается от ручного расчёта?

Наиболее вероятные причины:

  • 🔸 В ячейках есть скрытые символы (пробелы, переносы строк). Используйте ПЕЧСИМВ() для очистки.
  • 🔸 Несовпадение размерностей матриц (Excel не выдаёт ошибку, но результат неверный).
  • 🔸 Округление чисел. Проверьте формат ячеек (установите Числовой с 4–5 знаками после запятой).

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

Для этого не нужна специальная функция — просто умножьте каждый элемент матрицы на число. Например, если матрица в A1:C2, а число в E1, используйте формулу массива:

=A1:C2 * $E$1

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

Можно ли умножить более двух матриц за одну операцию?

Да, функция МУМНОЖ поддерживает последовательное умножение. Например:

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

Здесь сначала умножаются A1:C2 и E1:F3, а затем результат умножается на H1:I2. Не забывайте про совместимость размерностей на каждом этапе!

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

Используйте функцию ТРАНСП() (англ. TRANSPOSE). Например, если матрица A в A1:C2, её транспонированная версия будет:

=ТРАНСП(A1:C2)

Введите эту формулу как массив (Ctrl+Shift+Enter в старых версиях). В Excel 365 транслированная матрица отобразится автоматически.