Умножение матриц в Excel: пошаговое руководство для 2 и 3 матриц

При попытке перемножить матрицы в Excel через стандартные функции многие сталкиваются с ошибкой #ЗНАЧ! — это означает, что количество столбцов первой матрицы не совпадает с количеством строк второй. Чтобы избежать ошибок, используйте функцию МУМНОЖ (или MMULT в английской версии) с обязательным соблюдением правила размерностей: если матрица A имеет размер m×n, а матрица Bn×k, то результат будет размером m×k. Для трёх матриц сначала умножьте первые две, затем результат — на третью.

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

Правила умножения матриц: почему размерность важнее формул

Умножение матриц — это не поэлементная операция, как сложение или вычитание. Здесь каждый элемент результирующей матрицы вычисляется как скалярное произведение соответствующей строки первой матрицы и столбца второй. Например, для матриц A (2×3) и B (3×2) элемент C11 результата будет равен:

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

Если количество столбцов первой матрицы (n) не равно количеству строк второй (m), Excel вернёт ошибку. Проверьте размерности заранее:

  • 🔢 Для двух матриц: кол-во столбцов A = кол-ву строк B.
  • 🔄 Для трёх матриц: сначала проверьте совместимость A×B, затем — результат с C.
  • ⚠️ Если матрицы квадратные (n×n), порядок не важен, но результат A×B и B×A будет разным.
МатрицаРазмерностьПримерСовместимость с
A2×3{{1,2,3},{4,5,6}}k
B3×2{{7,8},{9,10},{11,12}}k или m×3
C2×4{{13,14,15,16},{17,18,19,20}}k или m×2

Умножение двух матриц: функция МУМНОЖ и формулы массива

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

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

  1. Выделите пустой диапазон размером m×k (где m — строки первой матрицы, k — столбцы второй).
  2. Введите =МУМНОЖ(A1:C2; E1:F3), где A1:C2 — первая матрица (2×3), E1:F3 — вторая (3×2).
  3. Завершите ввод:
    • В Excel 2016/2019: Ctrl+Shift+Enter (появятся фигурные скобки {...}).
    • В Excel 365: просто Enter.

1. Проверьте размерности матриц (кол-во столбцов A = кол-ву строк B).

2. Выделите диапазон для результата (строки A × столбцы B).

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

4. В старых версиях Excel не забывайте про Ctrl+Shift+Enter.

-->

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

А = |1 2 3|    B = |7  8|

|4 5 6| |9 10|

|11 12|

Результат C = A×B:

C = |58  64|

|139 154|

Почему результат не совпадает с ручным расчётом?

Если вы вручную перемножили матрицы и получили другие числа, проверьте:

1. Порядок матриц (A×B ≠ B×A).

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

3. Формат ячеек (должен быть "Общий" или "Числовой").

Умножение трёх матриц: последовательный подход

Для умножения трёх матриц A×B×C сначала перемножьте первые две (A×B), затем результат умножьте на третью ((A×B)×C). Важно: порядок операций влияет на результат из-за неассоциативности матричного умножения. Используйте промежуточные диапазоны или вложенные функции.

Способ 1: С промежуточным результатом (рекомендуется для наглядности):

  1. Умножьте A×B в диапазоне D1:E2 (например, =МУМНОЖ(A1:C2; F1:G3)).
  2. Умножьте результат на C в новом диапазоне: =МУМНОЖ(D1:E2; I1:L2).

Способ 2: Вложенная функция (компактно, но сложно отлаживать):

=МУМНОЖ(МУМНОЖ(A1:C2; F1:G3); I1:L2)

С промежуточными результатами|Вложенной функцией|Не знаю, что выбрать|Использую VBA-->

⚠️ Внимание: При вложенном умножении Excel может выдавать ошибку #ЗНАЧ!, если размерности промежуточных результатов не совпадают. Всегда проверяйте размерность (A×B) перед умножением на C.

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

Ошибка #ЗНАЧ! — самая частая проблема. Причины и решения:

  • 🔴 Несовпадение размерностей: Убедитесь, что количество столбцов первой матрицы равно количеству строк второй. Используйте функцию СТРОКА() и СТОЛБЕЦ() для проверки:
    =СТРОКА(A1:C2)  → вернёт 2 (строки)
    

    =СТОЛБЕЦ(F1:G3) → вернёт 2 (столбца), но нужно 3!

  • 🔴 Текст в ячейках: Преобразуйте текстовые числа в числовой формат с помощью ЗНАЧЕН():
    =МУМНОЖ(ЗНАЧЕН(A1:C2); ЗНАЧЕН(F1:G3))
  • 🔴 Неправильный ввод формулы массива: В старых версиях Excel забыли нажать Ctrl+Shift+Enter. В новых версиях проверьте, не блокирует ли "проливку" соседняя таблица.

Ошибка #ССЫЛКА! возникает, если диапазоны матриц пересекаются с диапазоном результата. Решение: размещайте матрицы и результат на разных листах или с запасом по строкам/столбцам.

Динамические массивы в Excel 365: упрощённое умножение

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

  • 📌 Если справа или снизу от формулы есть данные, Excel выдаст ошибку #ЗАПРЕЩ! (перекрытие диапазонов).
  • 📌 Для приостановки "проливки" используйте @ перед функцией (например, =@МУМНОЖ(...)), но это вернёт только первый элемент результата.
  • 📌 Чтобы ограничить вывод, оберните функцию в ИНДЕКС:
    =ИНДЕКС(МУМНОЖ(A1:C2; E1:F3); 1; 1)
    — вернёт только элемент [1,1].

Пример динамического умножения трёх матриц:

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

Результат автоматически займёт диапазон 2×2 (если A — 2×3, B — 3×2, C — 2×2).

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

Чтобы проверить корректность умножения, используйте один из методов:

  1. Ручной расчёт: Вычислите 2–3 элемента результата вручную (например, C11 и C22) и сравните с Excel.
  2. Обратная операция: Если матрицы квадратные и невырожденные, умножьте результат на обратную матрицу (=МОБР()) — должна получиться исходная матрица.
  3. Сравнение с онлайн-калькулятором: Используйте сервисы вроде MatrixCalc для проверки.

Пример проверки для матриц 2×2:

А = |1 2|    B = |3 4|

|5 6| |7 8|

A×B = |19 22|

|43 50|

Проверка: (A×B)×B⁻¹ = A (если B⁻¹ существует).

⚠️ Внимание: Для неквадратных матриц обратной матрицы не существует. В этом случае используйте псевдообратную матрицу (=МОБР.ПСЕВДО() в Excel 365), но результат будет приближённым.

Умножение матриц с помощью Power Query (для больших данных)

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

  1. Импортируйте матрицы как таблицы (Данные → Из таблицы/диапазона).
  2. В Power Query добавьте пользовательский столбец с формулой умножения (например, для строки A и столбца B):
    = List.Sum(List.Transform({[A1], [A2], [A3]}, (x, i) => x * B[i]))
  3. Разверните результат и загрузите обратно в Excel.

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

  • 🚀 Работает с матрицами размером >10 000×10 000 (ограничение стандартных функций).
  • 🔄 Позволяет автоматизировать умножение при обновлении данных.
  • 📊 Можно интегрировать с другими источниками (SQL, CSV).

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

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

Да, если количество столбцов матрицы равно количеству строк вектора (то есть вектор-столбец размером n×1 можно умножить на матрицу m×n). Результат будет вектор-столбцом m×1. Пример:

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

где A1:C2 — матрица 2×3, а F1:F3 — вектор 3×1.

Почему результат умножения не симметричен (A×B ≠ B×A)?

Матричное умножение не коммутативно. Даже если обе матрицы квадратные, A×B и B×A будут разными (за исключением специальных случаев, например, если A и B диагональные).

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

Используйте стандартное умножение диапазона на число. Например, чтобы умножить матрицу A1:C2 на 5:

  1. В пустой ячейке введите 5.
  2. Скопируйте её (Ctrl+C).
  3. Выделите матрицу A1:C2, затем ПКМ → Специальная вставка → Умножить.
Можно ли умножать матрицы с текстом?

Нет, МУМНОЖ работает только с числовыми данными. Преобразуйте текст в числа с помощью ЗНАЧЕН() или удалите нечисловые ячейки.

Как умножить матрицы в Google Sheets?

В Google Таблицах используется функция MMULT (аналог МУМНОЖ). Синтаксис идентичен, но формулу массива нужно вводить с ArrayFormula:

=ArrayFormula(MMULT(A1:C2; E1:F3))