「Excelで逆行列を求めたいけど、やり方がわからない」「連立方程式をExcelで解けたら便利なのに」と思ったことはありませんか。
手計算で逆行列を求めるのは行列が大きくなるほど大変ですし、計算ミスも起きやすいですよね。
MINVERSE関数を使えば、正方行列の逆行列をワンステップで算出できます。さらにMMULT関数と組み合わせると、連立方程式の解まで一気に求められます。この記事では基本の使い方から実務で役立つ応用例まで、順を追って解説していきます。
MINVERSE関数とは?
MINVERSE関数は、指定した正方行列(行数と列数が同じ行列)の逆行列を返す関数です。
- 読み方: マトリックス・インバース(Matrix Inverse)
- 語源: 「M」はMatrix(行列)、「INVERSE」は逆(Inverse)を意味します
- 対応バージョン: Excel 2003以降 / Microsoft 365
逆行列とは、元の行列に掛け合わせると単位行列(対角成分が1、それ以外が0の行列)になる行列のことです。数式で書くと「A x A^(-1) = I(単位行列)」という関係が成り立ちます。
逆行列が求められるのは、行列式(MDETERM関数で算出できる値)が0でない正方行列に限られます。行列式が0の行列は「特異行列」と呼ばれ、逆行列は存在しません。
MINVERSE関数の書き方(構文と引数)
基本構文
=MINVERSE(配列)
MINVERSE関数の引数は1つだけなので、とてもシンプルです。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 配列 | 必須 | 行数と列数が等しい数値配列(正方行列)を指定します |
配列に指定できるもの:
- セル範囲(例: B2:D4)
- 配列定数(例: {1,2;3,4})
注意点:
- 行数と列数が異なる範囲を指定すると
#VALUE!エラーになります - 空白セルや文字列が含まれていると
#VALUE!エラーになります - 行列式が0の行列を指定すると
#NUM!エラーになります
配列数式としての入力方法
MINVERSE関数は結果を配列(複数のセル)で返します。入力方法はExcelのバージョンによって異なります。
- Microsoft 365 / Excel 2021以降: 1つのセルに
=MINVERSE(B2:C3)と入力してEnterキーを押すだけで、結果が自動的にスピル(隣接セルに展開)されます - Excel 2019以前: 結果を表示したいセル範囲をあらかじめ選択し、数式を入力した後に Ctrl + Shift + Enter で確定します。数式バーに
{=MINVERSE(B2:C3)}と波括弧が付けば成功です
基本的な使い方
2×2行列の逆行列を求める
まずは最もシンプルな2×2行列で試してみましょう。
セルB2:C3に以下のような行列が入力されているとします。
| B | C | |
|---|---|---|
| 2 | 4 | 7 |
| 3 | 2 | 6 |
逆行列を求めるには、結果を表示したいセル(例: E2)に次の数式を入力します。
=MINVERSE(B2:C3)
結果として、E2:F3に逆行列の値が表示されます。
| E | F | |
|---|---|---|
| 2 | 0.6 | -0.7 |
| 3 | -0.2 | 0.4 |
この結果が正しいか確認するには、元の行列と逆行列を掛け合わせて単位行列になるかチェックします。MMULT関数を使って =MMULT(B2:C3,E2:F3) と入力すると、対角成分が1、それ以外がほぼ0の単位行列が得られます。
3×3行列の逆行列を求める
3×3以上の行列でも使い方は同じです。
セルB2:D4に3×3の行列が入力されている場合、結果を表示したいセル(例: F2)に次のように入力します。
=MINVERSE(B2:D4)
F2:H4に3×3の逆行列が展開されます。行列が大きくなるほど手計算は大変ですが、MINVERSE関数なら一瞬で結果が出るのでとても便利です。
セル参照を使った基本的な入力
配列定数を直接指定する方法もあります。2×2行列の場合、次のように書けます。
=MINVERSE({4,7;2,6})
配列定数では、列の区切りにカンマ(,)、行の区切りにセミコロン(;)を使います。ただし、行列が大きくなるとセル範囲で指定する方が見やすくなります。
実務で役立つ活用例
連立方程式を解く
MINVERSE関数の実務的な使い道として最も多いのが、連立方程式を解くケースです。
たとえば、次の連立方程式を考えます。
2x + 3y = 8
4x + 1y = 10
これを行列の形に変換すると「Ax = b」と表せます。
- 係数行列 A:
{2,3;4,1} - 定数ベクトル b:
{8;10}
解は「x = A^(-1) x b」なので、MINVERSE関数とMMULT関数を組み合わせます。
=MMULT(MINVERSE(B2:C3),E2:E3)
B2:C3に係数行列、E2:E3に定数ベクトルを入力しておくと、この数式で x = 2.6, y = 0.93... といった解が一発で求められます。
手順をまとめると次のとおりです。
- 係数行列をセルに入力する(例: B2:C3)
- 定数ベクトルをセルに入力する(例: E2:E3)
- 解を表示したいセルに
=MMULT(MINVERSE(B2:C3),E2:E3)と入力する - Enterキーを押す(Excel 2019以前はCtrl+Shift+Enter)
3元連立方程式でも同じ考え方で解けます。係数行列を3×3に、定数ベクトルを3行にするだけです。
逆行列の存在確認と検算
逆行列が存在するかどうかを事前にチェックするには、MDETERM関数で行列式を求めます。
=MDETERM(B2:C3)
この結果が0でなければ逆行列が存在します。0の場合はMINVERSE関数を使っても #NUM! エラーになるため、先にMDETERM関数で確認しておくとスムーズです。
逆行列が正しいかの検算には、元の行列と逆行列の積が単位行列になるかを確認します。
=MMULT(B2:C3,MINVERSE(B2:C3))
結果の対角成分が1、それ以外が0(または非常に小さい値)になっていれば正しく計算されています。浮動小数点の関係で完全な0にならず、1E-16のような極小の値が表示されることがありますが、これは誤差の範囲内なので問題ありません。
よくあるエラーと対処法
MINVERSE関数で発生しやすいエラーと、その原因・対処法をまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
#VALUE! | 行数と列数が異なる範囲を指定した | 正方行列(2×2、3×3など)になっているか確認する |
#VALUE! | 配列内に空白セルや文字列が含まれている | すべてのセルに数値が入力されているか確認する |
#NUM! | 行列式が0の特異行列を指定した | MDETERM関数で行列式を確認し、0でないことを確かめる |
| 極小の値が表示される | 浮動小数点演算の誤差 | ROUND関数で丸める(例: =ROUND(MINVERSE(B2:C3),10)) |
#VALUE! エラーが出たときは、まず指定した範囲が正方形になっているかを確認してください。たとえば2行3列の範囲を指定していないか、途中に空白や文字が混じっていないかをチェックするのがポイントです。
まとめ
MINVERSE関数は、Excelで正方行列の逆行列を求めるための関数です。
この記事のポイントをおさらいしましょう。
- MINVERSE関数の引数は「配列」の1つだけ。正方行列を指定する
- Microsoft 365やExcel 2021以降ではスピル対応。Excel 2019以前ではCtrl+Shift+Enterで入力する
- MMULT関数と組み合わせることで連立方程式を解ける
- エラーが出たらまず「正方行列か」「数値のみか」「行列式が0でないか」を確認する
逆行列の計算は手作業だとミスが起きやすい処理ですが、MINVERSE関数を使えば正確に素早く結果を得られます。連立方程式を解く場面でもぜひ活用してみてください。
関連する行列関数との使い分け
| 関数名 | 機能 | 入力 | 出力 |
|---|---|---|---|
| MINVERSE | 逆行列を求める | 正方行列 | 逆行列(配列) |
| MMULT | 行列の積を求める | 2つの行列 | 積の行列(配列) |
| MDETERM | 行列式を求める | 正方行列 | 数値(スカラー) |
| TRANSPOSE | 行と列を入れ替える | 任意の配列 | 転置行列(配列) |
- 連立方程式を解きたい → MINVERSE + MMULT
- 行列の掛け算をしたい → MMULT
- 逆行列が存在するか確認したい → MDETERM
- 行と列を入れ替えたい → TRANSPOSE
