Введение: зачем делить матрицы в Excel?
Работа с матрицами в Microsoft Excel — это не только академическая задача, но и практический инструмент для анализа данных, финансового моделирования и инженерных расчётов. Деление матриц (или умножение на обратную матрицу) часто требуется при решении систем линейных уравнений, оптимизации процессов или даже в машинном обучении. Однако в отличие от элементарных операций с числами, деление матриц имеет свои правила и ограничения.
В этой статье мы разберём 5 способов деления матриц — от базовых функций до продвинутых методов с использованием МОБР, МУМНОЖ и массивов. Вы узнаете, как избежать ошибок #ЗНАЧ! и #ЧИСЛО!, почему не все матрицы можно делить, и как автоматизировать процесс с помощью Power Query. А для тех, кто работает с большими данными, мы подготовили бонус: как делить матрицы в Google Sheets и LibreOffice Calc.
Если вы никогда не сталкивались с матричными операциями, не переживайте: мы начнём с азов и постепенно перейдём к сложным примерам. А опытные пользователи найдут здесь редкие приёмы, например, деление матриц с использованием ЛЯМБДА-функций в новых версиях Excel.
1. Основы: что такое деление матриц и почему это не так просто
В классической арифметике деление — это операция, обратная умножению. С матрицами всё иначе: прямого деления не существует. Вместо этого используется умножение на обратную матрицу. То есть, если у вас есть уравнение A × X = B, то решение X находится как X = A⁻¹ × B, где A⁻¹ — обратная матрица к A.
Но здесь есть три критичных нюанса:
- 🔢 Квадратность: обратная матрица существует только для квадратных матриц (где число строк равно числу столбцов).
- 🚫 Вырожденность: если определитель матрицы равен нулю (
МОПРЕД(A) = 0), обратной матрицы не существует. - ⚠️ Порядок операций: умножение матриц некоммутативно, поэтому
A⁻¹ × B ≠ B × A⁻¹.
В Excel для нахождения обратной матрицы используется функция МОБР (или MINVERSE в английской версии). А для умножения — МУМНОЖ (MMULT). Но обо всём по порядку.
2. Способ 1: деление матриц через обратную матрицу (классический метод)
Это самый универсальный способ, который работает в большинстве случаев. Предположим, у вас есть матрица A (3×3) и матрица B (3×1), и вам нужно найти X в уравнении A × X = B.
Алгоритм действий:
- Найдите обратную матрицу
A⁻¹с помощью=МОБР(диапазон_A). - Умножьте
A⁻¹наBс помощью=МУМНОЖ(диапазон_A⁻¹; диапазон_B).
Пример на данных:
| Матрица A | Значения | ||
|---|---|---|---|
| 1 | 2 | 3 | |
| 1 | 4 | 2 | 1 |
| 2 | 3 | 1 | 2 |
| 3 | 1 | 2 | 3 |
| Матрица B | Значение |
|---|---|
| 1 | 9 |
| 2 | 8 |
| 3 | 10 |
Формулы для расчёта:
=МОБР(A1:C3) → обратная матрица
=МУМНОЖ(диапазон_обратной; E1:E3) → решение X
☑️ Проверка перед делением матриц
⚠️ Внимание: Если после ввода формулыМОБРилиМУМНОЖвы не нажалиCtrl+Shift+Enter, Excel вернёт только первое значение результата. Эти функции возвращают массив, поэтому требуют специального ввода.
3. Способ 2: деление матриц с помощью функции МРЕШЕНИЕ (для систем уравнений)
Если ваша задача — решить систему линейных уравнений вида A × X = B, можно использовать функцию МРЕШЕНИЕ (MLINSOLVE в англоязычной версии). Она автоматически находит обратную матрицу и выполняет умножение.
Синтаксис:
=МРЕШЕНИЕ(диапазон_A; диапазон_B)
Преимущества метода:
- ✅ Не нужно вручную искать обратную матрицу.
- ✅ Работает с неквадратными матрицами (если система имеет решение).
- ✅ Меньше шагов — меньше ошибок.
Пример: для матриц A (3×3) и B (3×1) из предыдущего раздела формула будет:
=МРЕШЕНИЕ(A1:C3; E1:E3)
⚠️ Внимание: ФункцияМРЕШЕНИЕдоступна только в Excel 2013 и новее. В старых версиях используйте комбинациюМОБР+МУМНОЖ.
Что делать, если МРЕШЕНИЕ возвращает #Н/Д?
Ошибка #Н/Д означает, что система уравнений не имеет решения. Проверьте:
1. Совместимость размеров матриц (число столбцов A должно равняться числу строк B).
2. Линейную зависимость строк/столбцов в матрице A (определитель равен нулю).
3. Опечатки в данных или формулах.
4. Способ 3: поэлементное деление матриц (когда нужно разделить каждый элемент)
Иногда под "делением матриц" понимают поэлементное деление, когда каждый элемент одной матрицы делится на соответствующий элемент другой. Это не матричная операция в классическом смысле, но такой подход востребован в анализе данных (например, для нормализации).
Пример: у вас есть матрица продаж по регионам за 2 года, и вы хотите найти процентное изменение.
Формула для поэлементного деления:
=A1:B3 / D1:E3
Но! В Excel нельзя просто так делить диапазоны. Нужно использовать одну из хитростей:
- 📊 Преобразовать в массив: ввести формулу как массив (
Ctrl+Shift+Enter). - 🔄 Использовать
ИНДЕКС:=ИНДЕКС($A$1:$B$3; ПОИСКПОЗ(СТРОКА(A1); СТРОКА($A$1:$A$3)); ПОИСКПОЗ(СТОЛБЕЦ(A1); СТОЛБЕЦ($A$1:$B$1))) / ИНДЕКС($D$1:$E$3; ...) - 💡 В новых версиях Excel (365, 2021) можно использовать
ЛЯМБДАилиMAP.
5. Способ 4: деление матриц с помощью Power Query (для больших данных)
Если вы работаете с матрицами размером 1000×1000, классические формулы Excel будут тормозить или вообще не справятся. В таких случаях спасает Power Query — инструмент для обработки больших данных.
Алгоритм:
- Импортируйте обе матрицы в Power Query (
Данные → Получить данные → Из таблицы/диапазона). - Объедините таблицы по ключам (номерам строк и столбцов).
- Добавьте столбец с формулой деления (например,
[Матрица1]/[Матрица2]). - Загрузите результат обратно в Excel.
Преимущества:
- ⚡ Скорость: обработка миллионов ячеек за секунды.
- 🔄 Автоматизация: обновление при изменении исходных данных.
- 📈 Гибкость: можно добавлять фильтры, группировки и другие преобразования.
⚠️ Внимание: При объединении матриц в Power Query следите за соответствием строк и столбцов. Ошибка в ключах приведёт к некорректному результату, но программа не выдаст предупреждение!
6. Способ 5: деление матриц в Excel Online и Google Sheets
Если вы используете Excel Online или Google Sheets, некоторые функции могут работать иначе. Например, в Google Sheets нет МРЕШЕНИЕ, но есть альтернативы:
| Задача | Excel (десктоп) | Excel Online | Google Sheets |
|---|---|---|---|
| Обратная матрица | МОБР | MINVERSE | =MINVERSE |
| Умножение матриц | МУМНОЖ | MMULT | =MMULT |
| Решение системы | МРЕШЕНИЕ | Нет | =ARRAYFORMULA(MINVERSE(A1:C3)&MMULT(MINVERSE(A1:C3); D1:D3)) |
В Google Sheets для поэлементного деления матриц удобно использовать ARRAYFORMULA:
=ARRAYFORMULA(A1:B3 / D1:E3)
Важно: в Google Sheets массивы не требуют нажатия Ctrl+Shift+Enter — формулы автоматически распознаются как массивы.
7. Распространённые ошибки и как их избежать
Даже опытные пользователи сталкиваются с ошибками при работе с матрицами. Вот самые частые:
- 🔴
#ЗНАЧ!: возникает, если размеры матриц несовместимы (число столбцов первой ≠ числу строк второй). Проверьте размеры с помощью=СТРОКА(диапазон)-СТРОКА(первая_ячейка)+1. - 🔴
#ЧИСЛО!: обратная матрица не существует (определитель = 0). Используйте=МОПРЕД(диапазон)для проверки. - 🔴
#ДЕЛ/0!: при поэлементном делении один из элементов равен нулю. Добавьте проверку=ЕСЛИОШИБКА(A1/B1; 0). - 🔴 Неполный результат: забыли нажать
Ctrl+Shift+Enterдля массива. В новых версиях Excel это не требуется, но в 2016 и старше — обязательно.
Чтобы минимизировать ошибки:
☑️ Анти-чеклист ошибок
8. Продвинутые приёмы: деление матриц с ЛЯМБДА и динамическими массивами
В Excel 365 и 2021 появились динамические массивы и функция ЛЯМБДА, которые упрощают работу с матрицами. Например, можно создать пользовательскую функцию для деления матриц:
Пример кода для ЛЯМБДА:
=ЛЯМБДА(матр1; матр2;
ЕСЛИ(
ИЛИ(СТРОКА(матр1)≠СТРОКА(матр2); СТОЛБЕЦ(матр1)≠СТОЛБЕЦ(матр2));
"Ошибка: размеры не совпадают";
матр1 / матр2
)
)(A1:B2; D1:E2)
Преимущества:
- 🤖 Автоматизация: одна функция вместо нескольких шагов.
- 🔄 Гибкость: можно добавлять проверки и обработку ошибок.
- 📊 Динамичность: результат автоматически расширяется при изменении исходных данных.
Для умножения на обратную матрицу с ЛЯМБДА:
=ЛЯМБДА(A; B;
МУМНОЖ(МОБР(A); B)
)(A1:C3; E1:E3)
FAQ: ответы на частые вопросы
Можно ли делить матрицы разных размеров?
Нет, для матричного "деления" (умножения на обратную матрицу) количество столбцов первой матрицы должно равняться числу строк второй. Для поэлементного деления размеры должны совпадать полностью.
Почему МОБР возвращает ошибку #ЧИСЛО?
Это означает, что матрица вырожденная (её определитель равен нулю). Проверьте с помощью =МОПРЕД(диапазон). Решения два: исправьте данные или используйте псевдообратную матрицу (функция МОБР.ПСЕВДО в некоторых надстройках).
Как делить матрицы в Excel для Mac?
Функции МОБР, МУМНОЖ и МРЕШЕНИЕ работают одинаково. Единственное отличие — в старых версиях Excel для Mac (до 2016) может не быть МРЕШЕНИЕ. Используйте комбинацию МОБР + МУМНОЖ.
Можно ли делить матрицы с комплексными числами?
В стандартном Excel — нет. Но можно использовать надстройки (например, Analysis ToolPak) или перейти в MATLAB/Python (библиотека numpy). В Excel комплексные числа представляются как текст (например, "3+4i"), и с ними не работают матричные функции.
Как ускорить деление больших матриц (1000×1000)?
Для таких задач:
- Используйте Power Query (раздел 5 статьи).
- Разбейте матрицу на блоки и обрабатывайте их по отдельности.
- Перейдите на Python с библиотекой
numpy— она оптимизирована для матричных операций.