ExcelのMUNIT関数の使い方|単位行列の作成とMMULT・MINVERSEでの活用例

スポンサーリンク

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で確定します。

  1. A1〜C3の9セルを選択
  2. =MUNIT(3) と入力
  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で確定します。

  1. 出力先のセル範囲(例: 3×3なら9セル)を先に選択
  2. 数式バーに =MUNIT(3) と入力
  3. Ctrl+Shift+Enterで確定
  4. 数式バーに {=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関数の使い方で紹介しています。

行列関数のシリーズ記事もあわせてご参考にどうぞ。

タイトルとURLをコピーしました