MMULT関数とは?スプレッドシートで行列の掛け算をする方法

今日の部長から「売上データを行列で計算してくれ」って言われたんだけど…。行列って数学で出てきた、あの数字がいっぱい並んでるやつですよね…?
猫男
猫男
catman
catman
落ち着け。スプレッドシートにはMMULT関数という便利な関数がある。行列計算を自動化できるぞ。

スプレッドシートのMMULT関数とは?

MMULT関数は、行列同士を掛け算する関数だ。

普通の掛け算なら、

=A1*B1

のように書くが、MMULT関数を使うと、複数のデータをまとめて計算できる。

書き方は次の通りだ。

=MMULT(配列1, 配列2)
  • 配列1:左側の表
  • 配列2:右側の表

大量データの集計、売上分析、重み付け計算などで活躍するぞ。

行列って聞くと怖いですけど、意外と使い道あるんですね!
猫男
猫男

MMULT関数を実際に使ってみよう

今回は商品の販売数と単価を使って、売上をまとめて計算してみよう。

まずは次の表を作ろう

商品 販売数
商品A 5
商品B 3
商品C 8

 

商品A単価 商品B単価 商品C単価
100 200 300

この場合、

  • 商品A:5 × 100
  • 商品B:3 × 200
  • 商品C:8 × 300

を計算したあと、全部合計したい。

普通なら1つずつ計算して、

=5*100+3*200+8*300

と書くところだ。

しかしMMULT関数なら一発でいける。

=MMULT(B2:B4,D2:F2)

実行すると結果はこうなる。

3500

計算の中身は次のようになっている。


5×100
+
3×200
+
8×300
=
3500
おぉ!全部の掛け算を一気にやってくれるんですね!
猫男
猫男
catman
catman
データが数百行になったとき、本当の力を発揮するぞ。

MMULT関数でエラーになる原因

MMULT関数で初心者がよく遭遇するのがエラーだ。

たとえば次のような式。

=MMULT(B2:B4,D2:D4)

これはエラーになる。

なぜなら、行列のサイズが合っていないからだ。

MMULT関数にはルールがある。


左側の列数
=
右側の行数

例えば次ならOKだ。


3×1 行列
×
1×3 行列

しかし次はダメだ。


3×1 行列
×
3×1 行列

サイズが合わないためエラーになる。

なんか急に数学っぽくなってきました…。
猫男
猫男
catman
catman
安心しろ。覚えるのは「左の列数=右の行数」だけで十分だ。

実務ではどんな場面で使う?

MMULT関数は学校の数学だけの関数ではない。

実際には次のような場面で使われる。

  • 商品の売上集計
  • アンケートの点数計算
  • 重み付け評価
  • 成績の自動計算
  • 複数条件の集計

特に「項目ごとに重みが違う計算」と相性が良い。

MMULT関数で慣れたら、GASで自動化するのもおすすめ

MMULT関数を使えば、スプレッドシート上で行列計算や重み付け計算を行える。

ただし、実務では次のような作業も出てくる。

  • 毎月同じ計算を繰り返す
  • 複数のシートからデータを集める
  • 計算結果を別シートに保存する
  • 集計結果をPDFやメールで送る
  • 条件に応じてレポートを自動作成する

こうした作業まで含めるなら、関数だけで頑張るより、GASで自動化した方が楽になることが多い。

たとえば、GASを使えば、

  • 売上データを自動で読み込む
  • MMULT関数をセットする
  • 計算結果を別シートに転記する
  • レポート用PDFを作成する
  • 担当者へメール送信する

といった流れも自動化できる。

スプレッドシート関数は、業務改善の入り口だ。

そして、毎回同じ作業をしているなら、そこはGASで仕組みにできる可能性がある。

なるほど…。関数で計算できるだけじゃなくて、その前後の作業もGASで自動化できるんですね。
猫男
猫男
catman
catman
そうだ。スプレッドシートで毎回同じ作業をしているなら、それは自動化のチャンスだ。

スプレッドシート関数で「ここまで自動化できるのか」と感じたら、次はGASでさらに一歩進めるタイミングだ。

売上集計、レポート作成、PDF出力、メール送信など、繰り返し作業はGASでまとめて自動化できる。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。