MMULT 関数は、2 つの表(行列)の積を求める関数です。「店ごと・商品ごとの数量」の表と「商品ごとの単価」の表から、=MMULT(B2:D4,F2:F4) で店ごとの売上が 1 つの式で出ます。
1 つ目の表の列の数と、2 つ目の表の行の数をそろえるのがポイントです。この記事では、MMULT の使い方を、実際の Excel で確かめた結果で説明します。
MMULT 関数の書き方
=MMULT(配列1, 配列2)
| 引数 | 意味 |
|---|---|
| 配列1 | 1 つ目の表(ここでは 3 行×3 列の数量) |
| 配列2 | 2 つ目の表(ここでは 3 行×1 列の単価)。行の数を配列1の列の数とそろえる |
結果は「配列1の行の数 × 配列2の列の数」の大きさになります。3×3 と 3×1 なら、3 行×1 列です。
1. 店ごとの売上を出す
数量の表(B2:D4)と単価の表(F2:F4)を掛けます。A 店なら 10×150+20×80+5×500 の計算が、3 店まとめてできます。
=MMULT(B2:D4,F2:F4)

A 店は 5,600、B 店は 7,400、C 店は 6,200 でした。
2. 商品ごとの数量の合計を出す
1 が 3 つ横に並んだ行列(SEQUENCE(1,3,1,0))を左から掛けると、列ごとの合計になります。
=MMULT(SEQUENCE(1,3,1,0),B2:D4)

りんごは 30、みかんは 40、ぶどうは 23 でした。
3. 全体の売上を出す
店ごとの売上を SUM で合計します。
=SUM(MMULT(B2:D4,F2:F4))

結果は 19,200 でした。
【実機で検証】MMULT でつまずくところ

| ためしたこと | 式 | 結果 |
|---|---|---|
| SUMPRODUCT で A 店の売上 | =SUMPRODUCT(MMULT!B2:D2,TRANSPOSE(MMULT!F2:F4)) | 5,600 |
| 大きさが合わない(単価を 2 行だけ) | =MMULT(MMULT!B2:D4,MMULT!F2:F3) | #VALUE! |
| 順番を逆にした(単価×数量) | =MMULT(MMULT!F2:F4,MMULT!B2:D4) | #VALUE! |
| 文字の入った範囲(A2:D4) | =MMULT(MMULT!A2:D4,MMULT!F2:F4) | #VALUE! |
| 1×1 どうし(3×4) | =MMULT(3,4) | 12 |
A 店の売上を SUMPRODUCT で出すと 5,600 で、MMULT と同じでした。
単価を 2 行だけ(F2:F3)にすると #VALUE!、順番を逆にすると #VALUE! になりました。行列の積は順番を入れ替えられません。1 つ目の列の数と 2 つ目の行の数を必ずそろえます。
見出しの文字が入った A2:D4 を指定すると #VALUE! です。数だけの範囲を指定します。数 1 つどうしの MMULT(3,4) は 12 でした。
よくある質問
1 行分の掛け算の合計なら?
1 店分だけなら SUMPRODUCT 関数が手軽です。
連立方程式を解きたいときは?
逆行列の MINVERSE と MMULT を組み合わせます。MINVERSE・MDETERM関数の使い方で説明しています。
どれかのキーワードを含む行を抽出したいときは?
MMULT で行ごとに数を合計して FILTER と組み合わせる方法があります。複数キーワードのどれかを含むデータを抽出する方法で説明しています。

コメント