解決できたので記録。
問題
前提として
excel version:Microsoft Office Home and Business 2016
OS:Windows
である。
行列演算はMMULT関数やMINVERSE関数を入力し、ctrl+shift+enterを押せばできると検索するとあった。
早速Excelを立ち上げ、B4:C5に対して次のように入力した。
B | C | |
4 | -1 | 2 |
---|---|---|
5 | 3 | -4 |
入力した行列の逆行列を求めるために別のセル(C7)に次のように入力し、ctrl+shift+enterを押した。
=MINVERSE(B4:C5)
すると、次のような結果がC7に表示された。
C | |
7 | 2 |
---|
本来であれば逆行列が計算されるため2行2列(C7:D8)で結果が表示されて、次のように表示されていたはず。
C | D | |
7 | 2 | 1 |
---|---|---|
8 | 1.5 | 0.5 |
どうして逆行列が正しく計算されないのか。
解決法0
Microsoft365だとenterを押すだけで自動的に計算してくれるから今すぐ契約しよう。
すべての Microsoft 365 プラン (旧 Office 365) を比較 - Microsoft Store
……というのは受け入れられないので次。
解決法1(ctrl+shift+enterを使う方法)
- 入力セルを含むように、あらかじめ結果が表示されるセル(C7:D8)を選択しておく。
- 次に、選択状態で数式を入力する。選択状態では選択範囲の一か所だけが白く表示され、そのほかは灰色で表示される。選択状態のまま入力すると白く表示された箇所に数式が入力される。
- 入力内容を確定するときにctrl+shift+enterで確定する。
これで選択状態のセル(C7:D8)に対して結果が表示される。
前の方法とこの方法はMINVERSE 関数 - Microsoft サポートで、MINVERSE関数の説明のすぐ後にある注釈に記載がある。
現在のバージョンのMicrosoft 365を使用している場合は、出力範囲の左上のセルに式を入力しENTERキーを押して、式を動的な配列の数式として確定することができます。 それ以外の場合、最初に出力範囲を選択し、出力範囲の左上のセルに数式を入力し、CTRL+SHIFT+ENTERキーを押して確定し、従来の配列数式として数式を入力する必要があります。
(太字部分は私が強調しました)
公式のヘルプを読み込むのはとっても重要。
解決法2(ctrl+shift+enterを使わない方法)
index関数を使う。indexの配列にMINVERSE(B4:C5)を入力し、行番号と列番号を指定するとその値が得られる。
結果を表示するセル(C7)に
=INDEX(MINVERSE($B$4:$C$5),1,1)
を入力すると、2が得られる。同様に行番号と列番号を(1,2),(2,1),(2,2)と変えてD7,C8,D8に入力していけば、次のような結果が得られる。
C | D | |
7 | 2 | 1 |
---|---|---|
8 | 1.5 | 0.5 |