Если при попытке перемножить две матрицы в Excel вы получаете ошибку #ЗНАЧ! или результат в виде одного числа вместо таблицы, проблема кроется в неправильном использовании функций или несовпадении размерностей. Умножение матриц в Excel требует соблюдения двух ключевых условий: количество столбцов первой матрицы должно равняться количеству строк второй, а для корректного отображения результата необходимо использовать формулу массива или динамические массивы (в новых версиях). Даже опытные пользователи часто упускают нюанс с фиксацией диапазонов при копировании формул — это приводит к искажению итоговой матрицы.
В этой инструкции разберём три метода умножения матриц: через функцию МУМНОЖ (или MMULT в английской версии), с помощью оператора @ для поэлементного умножения, и ручной способ для небольших матриц (2×2, 3×3). Особое внимание уделим типичным ошибкам — например, почему результат выводится в одну ячейку вместо диапазона, и как исправить #ССЫЛКА! при использовании относительных ссылок. Все примеры протестированы в Excel 2019–2023 и Microsoft 365.
1. Подготовка данных: правила размерностей матриц
Перед умножением проверьте совместимость размеров матриц. Если первая матрица имеет размерность m×n, то вторая должна быть n×k — количество столбцов первой (n) должно совпадать с количеством строк второй (n). Результирующая матрица будет размером m×k. Например, матрицу 3×2 можно умножить только на матрицу 2×4, но не на 3×3.
В Excel удобно размещать матрицы в отдельных диапазонах без пустых ячеек. Пример организации:
- 📌 Матрица A (3×2): диапазон
B2:C4 - 📌 Матрица B (2×3): диапазон
E2:G3 - 📌 Результат (3×3): диапазон
B6:D8(заранее выделите его!)
=ЕСЛИОШИБКА(МУМНОЖ(B2:C4;E2:G3);"Неверные размеры")-->
Для визуального контроля выделите диапазоны матриц разными цветами (на вкладке Главная → Условное форматирование). Это поможет не перепутать строки и столбцы при вводе формул. Также убедитесь, что в ячейках нет текста или формул, возвращающих ошибки — они прервут вычисления.
2. Метод 1: Функция МУМНОЖ (MMULT) для классического умножения
Функция МУМНОЖ (или MMULT в английской версии) — основной инструмент для умножения матриц. Синтаксис:
=МУМНОЖ(массив1; массив2)
Где массив1 и массив2 — диапазоны ячеек с матрицами. Важно: результат выводится как массив, поэтому формулу нужно вводить как формулу массива (в старых версиях — нажать Ctrl+Shift+Enter). В Excel 365 и 2021 это происходит автоматически.
Пошаговая инструкция:
- Выделите диапазон для результата (например,
B6:D8для матрицы 3×3). - Введите формулу:
=МУМНОЖ(B2:C4; E2:G3). - В Excel 2019 и старше нажмите
Enter— результат заполнит весь выделенный диапазон. В Excel 2016 и ранее завершите ввод комбинациейCtrl+Shift+Enter.
1. Количество столбцов первой матрицы = количеству строк второй|2. Диапазон результата соответствует размеру итоговой матрицы|3. Нет пустых ячеек в исходных матрицах|4. Формула введена как массив (для старых версий)-->
Если вместо матрицы выводится одно значение, значит:
- 🔴 Вы забыли выделить диапазон для результата до ввода формулы.
- 🔴 В Excel 2016 не нажали
Ctrl+Shift+Enter. - 🔴 Используете относительные ссылки (например,
B2:C4вместо$B$2:$C$4).
3. Метод 2: Поэлементное умножение с оператором @ (Excel 365)
Если вам нужно перемножить матрицы поэлементно (т.е. каждый элемент первой матрицы умножить на соответствующий элемент второй), используйте оператор @ или функцию УМНОЖИТЬ (в английской версии — * с динамическими массивами). Это не классическое матричное умножение, а операция Хадмара!
Пример для матриц одинакового размера (2×2):
=B2:С3 * E2:F3
В Excel 365 результат автоматически "прольётся" на соседние ячейки. В старых версиях используйте:
=УМНОЖИТЬ(B2:C3; E2:F3)
Когда использовать поэлементное умножение
Это нужно для задач машинного обучения (например, взвешивание признаков), обработки изображений (пиксель за пикселем) или статистического анализа, где требуется перемножить соответствующие элементы двух наборов данных.
Ограничения метода:
- ⚠️ Матрицы должны быть одинакового размера.
- ⚠️ Результат не соответствует математическому определению умножения матриц.
- ⚠️ В Excel 2019 и ранее требуется ввод как формулы массива.
4. Метод 3: Ручной расчёт для матриц 2×2 и 3×3
Для небольших матриц (например, 2×2) можно обойтись без функций, используя формулы ячеек. Это полезно для понимания алгоритма умножения. Рассмотрим пример:
| Матрица A | Матрица B | Результат (A×B) | ||
|---|---|---|---|---|
| 1 | 2 | 5 | 6 | =1*5+2*7=19 |
| 3 | 4 | 7 | 8 | =3*5+4*7=43 |
Формула для ячейки результата (первый элемент):
=B2*E2 + C2*E3
Для второй строки:
=B3*E2 + C3*E3
Этот метод наглядно демонстрирует, как происходит умножение: каждый элемент результирующей матрицы равен сумме произведений элементов строки первой матрицы на элементы столбца второй. Однако для матриц больше 3×3 ручной расчёт становится громоздким.
Функция МУМНОЖ|Ручной расчёт для небольших матриц|Поэлементное умножение|Другой вариант-->
5. Типичные ошибки и их исправление
Даже при правильном синтаксисе Excel может выдавать ошибки. Разберём самые частые:
⚠️ Внимание: Ошибка #ЗНАЧ! в 90% случаев означает несовпадение размерностей матриц. Проверьте количество столбцов первой матрицы и строк второй — они должны быть равны.
| Ошибка | Причина | Решение |
|---|---|---|
#ЗНАЧ! | Несовместимые размеры матриц | Измените размер одной из матриц или проверьте диапазоны |
#ССЫЛКА! | Относительные ссылки в формуле массива | Используйте абсолютные ссылки ($B$2:$C$4) |
| Одно значение вместо матрицы | Не выделен диапазон для результата | Выделите нужный диапазон до ввода формулы |
#ЧИСЛО! | Слишком большие числа в результате | Уменьшите масштаб данных или используйте приближённые вычисления |
Ещё одна распространённая проблема — копирование формулы на другие ячейки. Если вы ввели =МУМНОЖ(B2:C4;E2:G3) в ячейку B6 и потянули вниз, ссылки сдвинутся, что приведёт к ошибке. Решение:
- 🔹 Используйте абсолютные ссылки:
=МУМНОЖ($B$2:$C$4; $E$2:$G$3). - 🔹 Или выделяйте весь диапазон результата сразу и вводите формулу как массив.
6. Умножение матриц с условиями (продвинутый уровень)
Иногда требуется умножить матрицы с учётом дополнительных условий, например, игнорировать нулевые значения или применять умножение только к положительным элементам. Для этого комбинируйте МУМНОЖ с функциями ЕСЛИ и УМНОЖИТЬ.
Пример: умножить матрицы, но заменить отрицательные элементы результата на 0:
=ЕСЛИ(МУМНОЖ(B2:C4;E2:G3)<0; 0; МУМНОЖ(B2:C4;E2:G3))
Для поэлементного умножения с условием (например, только если оба элемента > 10):
=ЕСЛИ((B2:С3>10)*(E2:F3>10); B2:С3*E2:F3; 0)
В Excel 365 с динамическими массивами можно упростить запись:
=УМНОЖИТЬ(B2:C3*E2:F3; (B2:C3>10)*(E2:F3>10))
7. Оптимизация производительности при работе с большими матрицами
Умножение матриц размером больше 100×100 может значительно замедлить Excel. Чтобы ускорить вычисления:
- 🚀 Используйте значения вместо формул: после получения результата скопируйте его и вставьте как значения (
Правка → Специальная вставка → Значения). - 🚀 Разбейте большие матрицы на блоки и умножайте их по частям.
- 🚀 Отключите автоматический пересчёт формул (
Формулы → Параметры вычислений → Вручную). - 🚀 Для повторяющихся операций используйте VBA (макрос ниже).
Пример макроса для умножения матриц:
Sub MultiplyMatrices()
Dim rng1 As Range, rng2 As Range, rngResult As Range
Set rng1 = Range("B2:C4") ' Первая матрица
Set rng2 = Range("E2:G3") ' Вторая матрица
Set rngResult = Range("B6:D8") ' Результат
rngResult.Value = Application.WorksheetFunction.MMult(rng1.Value, rng2.Value)
End Sub
Чтобы запустить макрос, нажмите Alt+F11, вставьте код в модуль и выполните его (F5). Это в 5–10 раз быстрее, чем формулы, для матриц 500×500.
8. Альтернативные инструменты для работы с матрицами
Если Excel не справляется с задачей (например, для матриц 1000×1000), рассмотрите альтернативы:
- 📊 Python с библиотекой NumPy: поддерживает матрицы любого размера и оптимизирован для вычислений.
- 📊 MATLAB или Octave: специализированные инструменты для матричных операций.
- 📊 Google Sheets: функция
MMULTработает аналогично Excel, но лучше обрабатывает большие массивы. - 📊 Overleaf (LaTeX): для документирования матричных вычислений с формулами.
Для интеграции с Excel можно использовать Power Query (на вкладке Данные → Получить данные). Например, чтобы загрузить матрицы из внешних источников и затем умножить их:
- Импортируйте данные в Power Query.
- Преобразуйте их в табличный формат.
- Вернитесь в Excel и примените
МУМНОЖ.
Часто задаваемые вопросы
Можно ли умножить матрицу на вектор-столбец в Excel?
Да, вектор-столбец — это матрица размером n×1. Умножайте её на матрицу m×n, результат будет m×1. Пример: если матрица A размером 3×2, а вектор B — 2×1, то результат A×B будет 3×1.
Почему после умножения матриц в ячейках отображаются нули?
Это происходит, если:
- Исходные матрицы содержат нулевые значения на диагонали (результат может быть нулевым).
- Вы использовали поэлементное умножение (
*) вместоМУМНОЖ. - Формат ячеек результата установлен как текстовый (измените на
ОбщийилиЧисловой).
Как умножить матрицу на число (скаляр)?
Используйте оператор умножения * с абсолютной ссылкой на ячейку со скаляром. Пример:
=B2:C4 * $A$1
Где A1 — ячейка с числом. В Excel 365 результат автоматически распределится по всему диапазону.
Поддерживает ли Excel умножение матриц с комплексными числами?
Нет, Excel не имеет встроенных функций для работы с комплексными числами в матрицах. Для этого используйте MATLAB, Python (NumPy) или надстройки для Excel (например, Complex Numbers).
Как транспонировать матрицу перед умножением?
Используйте функцию ТРАНСП (или TRANSPOSE):
=МУМНОЖ(B2:C4; ТРАНСП(E2:F4))
Не забудьте ввести формулу как массив (Ctrl+Shift+Enter в старых версиях).