MINVERSE 関数は逆行列、MDETERM 関数は行列式を求める関数です。これを使うと、Excel で連立方程式を解けます。
例:「りんご(150 円)とみかん(80 円)を合わせて 10 個買ったら 1,150 円だった。それぞれ何個?」は、x+y=10、150x+80y=1150 です。係数を表にして =MMULT(MINVERSE(A2:B3),C2:C3) と書くと、x と y が出ます。この記事では、実際の Excel で確かめた結果で説明します。
MINVERSE・MDETERM 関数の書き方
=MDETERM(配列)
=MINVERSE(配列)
| 引数 | 意味 |
|---|---|
| 配列 | 行の数と列の数が同じ(正方形の)数の範囲。ここでは係数の A2:B3 |
連立方程式の答えは「逆行列×右辺」です。MMULT で掛け算します(MMULT関数の使い方)。
1. 行列式を出す(MDETERM)
係数の 2 行×2 列の行列式です(1×80-1×150)。
=MDETERM(A2:B3)

結果は -70 でした。行列式が 0 でなければ、答えが 1 つに決まります。
2. 逆行列を出す(MINVERSE)
逆行列は、元の行列に掛けると「1 と 0 の行列(単位行列)」になる行列です。2 行×2 列で返ります。
=MINVERSE(A2:B3)

1 行目は -1.1429・0.0143、2 行目は 2.1429・-0.0143 でした。
3. 連立方程式の答えを出す
逆行列に右辺(C2:C3)を掛けると、x と y が縦に並びます。
=MMULT(MINVERSE(A2:B3),C2:C3)

x(りんご)は 5 個、y(みかん)は 5 個でした。150×5+80×5=1,150 で、たしかに合っています。
【実機で検証】MINVERSE でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| 行列式が 0(A12:B13)の MDETERM | =MDETERM(A12:B13) | 0 |
| 行列式が 0 の MINVERSE | =MINVERSE(A12:B13) | #NUM! |
| 正方形でない範囲(A2:C3) | =MDETERM(MINVERSE!A2:C3) | #VALUE! |
| 答えを元の式に入れて確かめる(150x+80y) | =SUMPRODUCT(MINVERSE!A3:B3,TRANSPOSE(MMULT(MINVERSE(MINVERSE!A2:B3),MINVERSE!C2:C3))) | 1150 |
| 逆行列×元の行列の左上 | =INDEX(MMULT(MINVERSE(MINVERSE!A2:B3),MINVERSE!A2:B3),1,1) | 1 |
2 行目が 1 行目の 2 倍の行列は、行列式が 0 になり、MINVERSE は #NUM! になりました。答えが 1 つに決まらない(逆行列がない)ためです。
行と列の数がちがう範囲(2 行×3 列)を指定すると #VALUE! です。係数だけの正方形の範囲を指定します。
答えを 150x+80y に入れると 1150 で、右辺と一致しました。逆行列に元の行列を掛けた左上は 1 で、単位行列になることも確かめられます。
よくある質問
3 つの未知数(x・y・z)のときは?
係数を 3 行×3 列、右辺を 3 行×1 列にして、同じ =MMULT(MINVERSE(係数),右辺) で解けます。
答えが 0.9999999 のようになるときは?
小数の計算でわずかな誤差が出ることがあります。=ROUND(…,6) などで丸めて表示します。
ゴールシークでも解ける?
答えが 1 つの式なら ゴールシーク、条件がいくつもあるならソルバーでも解けます。

コメント