MINVERSE関数で逆行列を求めたはいいけど、「本当に正しい結果か確認したい」と思ったことはありませんか?
ExcelのMUNIT関数を使えば、単位行列をワンステップで作成できます。MMULT関数と組み合わせることで、逆行列の正確さを簡単に検証できますよ。
この記事では、ExcelのMUNIT関数の基本的な使い方から、行列計算の検証・連立方程式の解の確認まで、実務的な活用例を紹介します。スピルとCSE配列数式の入力方法の違いも解説しますので、お使いのExcelのバージョンに合わせて確認してみてください。
ExcelのMUNIT関数とは?
ExcelのMUNIT関数(読み方: ムユニット関数)は、指定したサイズの単位行列(たんいぎょうれつ)を返す関数です。
「MUNIT」は「Matrix Unit(行列の単位)」を縮めた名前です。
単位行列とは
単位行列とは、対角線の要素がすべて1で、それ以外の要素がすべて0の正方行列のことです。
3×3の単位行列だと、こんな形になります。
1 0 0
0 1 0
0 0 1
掛け算の「1」と同じ役割を行列の世界で担っています。どんな行列Aに対しても「A × I = A」(Iが単位行列)が成り立つんですね。
この性質のおかげで、行列計算の検証に欠かせない存在です。
対応バージョン
MUNIT関数はExcel 2013以降で使えます。Microsoft 365・Excel 2024・Excel 2021・Excel 2019・Excel 2016・Excel 2013に対応しています。
Excel 2010以前では使えないので注意してください。
MUNIT関数の書き方(構文と引数)
基本構文
=MUNIT(次元数)
カッコの中に、作りたい行列のサイズ(行数=列数)を整数で入力します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 次元数 | 必須 | 作成する正方行列のサイズ。2以上の正の整数を指定する |
引数は1つだけで、シンプルな構文です。
配列数式としての入力方法
MUNIT関数は複数のセルに結果を返す「配列関数」です。入力方法がExcelのバージョンによって異なります。
Microsoft 365・Excel 2021以降(スピル対応)
先頭セルに入力するだけで、必要な範囲に自動で展開されます。
=MUNIT(3)
A1セルに入力すると、A1〜C3の3×3範囲に自動展開(スピル)されます。
Excel 2019以前(CSE配列数式)
結果を表示したい範囲(3×3なら9セル)を先に選択してから、数式を入力してCtrl+Shift+Enterで確定します。
- A1〜C3の9セルを選択
=MUNIT(3)と入力- Ctrl+Shift+Enterで確定
数式バーに {=MUNIT(3)} のように波カッコがつけば成功です。
MUNIT関数の基本的な使い方
2×2の単位行列を作成する
=MUNIT(2)
スピル対応Excelなら、左上のセルに入力するだけで次の行列が展開されます。
1 0
0 1
3×3の単位行列を作成する
=MUNIT(3)
結果として次の行列が展開されます。
1 0 0
0 1 0
0 0 1
大きな次元の単位行列を作成する
=MUNIT(5)
5×5(25セル)の単位行列が展開されます。大きなサイズでも引数を変えるだけなので便利ですよ。
実務で役立つ活用例
A × I = A の性質をMMULTで検証する
行列Aに単位行列Iを掛けると、Aがそのまま返ることを確認してみましょう。
次の2×2行列Aがセル範囲A1:B2に入っているとします。
2 3
1 4
単位行列IをD1:E2に用意します。
=MUNIT(2)
そして、AとIの積をG1:H2に求めます。
=MMULT(A1:B2, D1:E2)
結果は元のAと同じになります。
2 3
1 4
「行列に単位行列を掛けても変わらない」という性質が確認できましたね。これは行列計算の基本チェックとして使えますよ。
MINVERSE関数で求めた逆行列を検算する
逆行列の正確さを確認するのに、MUNIT関数は特に役立ちます。
行列A(A1:B2)の逆行列をMINVERSEで求め、それをAに掛けた結果が単位行列になるか確認しましょう。
=MMULT(A1:B2, MINVERSE(A1:B2))
正しく計算できていれば、単位行列(対角が1、それ以外が0)が返ります。
MUNIT関数で生成した単位行列と比較することで、計算結果が一致しているか目視で確認できます。
TIP
浮動小数点演算の影響で、0が「9.99E-17」などの非常に小さな数として表示されることがあります。これは計算上の誤差で正常な動作です。ROUND(結果, 10) のように丸めて比較するとすっきりします。
連立方程式の解を検算する
連立方程式を行列で解いた後、解が正しいかMUNIT関数を使って確認できます。
連立方程式の解は X = A⁻¹ × B(Aが係数行列、Bが定数ベクトル)で求まります。
解Xが正しければ、A × X = B が成り立つはずです。MINVERSEとMMULTで求めた解をAに掛けて、元のBと一致するか確認してみてください。
スピルとCSE配列数式
スピル対応(Microsoft 365 / Excel 2021以降)
スピル対応のExcelでは、MUNIT関数を先頭セルに入力するだけで、必要な範囲に自動展開されます。
- 先頭セルだけを選択して入力
- Enterで確定(Ctrl+Shift+Enterは不要)
- スピル範囲は自動調整される
NOTE
スピル範囲に他のデータが入っていると「#SPILL!」エラーが出ます。出力先のセル範囲を空にしておきましょう。
CSE配列数式(Excel 2019以前)
スピル非対応のExcelでは、出力したい範囲を先に選択してからCtrl+Shift+Enterで確定します。
- 出力先のセル範囲(例: 3×3なら9セル)を先に選択
- 数式バーに
=MUNIT(3)と入力 - Ctrl+Shift+Enterで確定
- 数式バーに
{=MUNIT(3)}と表示されれば成功
CSE配列数式として確定した後、個別のセルを編集することはできません。修正するときは範囲全体を選択して再入力します。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数が数値でない、または1以下の整数 | 2以上の正の整数を指定する |
| #NUM! | 引数が非常に大きい、または0以下 | 現実的なサイズ(50以下推奨)を指定する |
| #SPILL! | 出力先のセルに別のデータがある | 出力先の範囲を空にする(Microsoft 365/2021以降) |
引数が1以下のとき(#VALUE!エラー)
=MUNIT(1)
1×1の単位行列は「1」のスカラーになりますが、Excelでは#VALUE!エラーが返ることがあります。引数は2以上を指定してください。
引数が文字列のとき(#VALUE!エラー)
=MUNIT("3")
引数には文字列を使えません。セル参照を使う場合は、参照先が数値かどうか確認してみてください。
スピル先のセルが埋まっているとき(#SPILL!エラー)
スピル対応Excelで出力先のセル範囲に別のデータが入っていると#SPILL!エラーになります。MUNIT(3)なら3×3の9セル分を空けておきましょう。
関連する行列関数との使い分け
行列を扱うExcel関数を整理しておきましょう。
| 関数 | 動作 | 主な用途 |
|---|---|---|
| MUNIT | 単位行列を返す | 行列計算の検証・逆行列の確認 |
| MMULT | 行列の積を返す | 行列の掛け算 |
| MINVERSE | 逆行列を返す | 連立方程式を解く |
| MDETERM | 行列式(スカラー)を返す | 行列が正則かどうか判定 |
| TRANSPOSE | 転置行列を返す | 行・列を入れ替える |
MUNIT関数は単独で使うより、MMULT・MINVERSEと組み合わせて「計算結果の検証」に使う場面が多いです。
各関数の使い方は以下の記事で詳しく解説しています。
まとめ
ExcelのMUNIT関数は、指定したサイズの単位行列をワンステップで作成できる関数です。
この記事のポイントをまとめると、次のとおりです。
- 基本構文は
=MUNIT(次元数)で、作りたい正方行列のサイズを整数で指定する - Microsoft 365・Excel 2021以降はスピルで自動展開。Excel 2019以前はCtrl+Shift+Enterで確定
- A × I = Aの性質検証や、MINVERSEの逆行列検算に組み合わせて使う
- 引数は2以上の正の整数が必要。1以下や文字列は#VALUE!エラーになる
- 浮動小数点誤差で0が微小値になる場合はROUNDで丸めて比較する
行列計算をExcelで扱うときは、MMULT・MINVERSEと組み合わせてMUNIT関数で検算する習慣をつけると、計算ミスを早めに発見できますよ。
スプレッドシートでも同じ関数が使えます。Googleスプレッドシート版の使い方はスプレッドシートのMUNIT関数の使い方で紹介しています。
行列関数のシリーズ記事もあわせてご参考にどうぞ。
