<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>行列の積 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e8%a1%8c%e5%88%97%e3%81%ae%e7%a9%8d/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 26 Mar 2026 11:43:59 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>行列の積 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのMMULT関数の使い方｜行列の積</title>
		<link>https://mashukabu.com/spreadsheet-mmult-function/</link>
					<comments>https://mashukabu.com/spreadsheet-mmult-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 11:43:59 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[MDETERM関数]]></category>
		<category><![CDATA[MINVERSE関数]]></category>
		<category><![CDATA[MMULT関数]]></category>
		<category><![CDATA[TRANSPOSE関数]]></category>
		<category><![CDATA[行列の積]]></category>
		<category><![CDATA[行列計算]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5289</guid>

					<description><![CDATA[スプレッドシートのMMULT関数で行列の積を求める方法を解説。2×2・異なるサイズの行列の掛け算、MINVERSE関数と組み合わせた連立方程式の解法、加重スコアの計算など実務活用例も紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで複数の行列を掛け合わせたいとき、1つずつセルに計算式を入力するのは大変ですよね。行列のサイズが大きくなるほど、ミスも起きやすくなります。</p>



<p class="wp-block-paragraph">MMULT関数を使えば、2つの行列の積をまとめて計算できます。加重スコアの算出や連立方程式の解法など、実務でも活躍する場面がありますよ。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートのMMULT関数の基本から実践的な活用例まで解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのMMULT関数とは？</a></li><li><a href="#toc2" tabindex="0">MMULT関数の書き方</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li><li><a href="#toc5" tabindex="0">行列の積が計算できる条件</a></li></ol></li><li><a href="#toc6" tabindex="0">MMULT関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">2×2行列どうしの積を求める</a></li><li><a href="#toc8" tabindex="0">異なるサイズの行列の積を求める（2×3と3×2）</a></li></ol></li><li><a href="#toc9" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc10" tabindex="0">加重スコアを一括計算する</a></li><li><a href="#toc11" tabindex="0">MINVERSE関数と組み合わせて連立方程式を解く</a></li><li><a href="#toc12" tabindex="0">TRANSPOSE関数と組み合わせて転置してから掛ける</a></li></ol></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc14" tabindex="0">似た関数との違い・使い分け</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのMMULT関数とは？</span></h2>



<p class="wp-block-paragraph">MMULT関数は、2つの行列（配列）の積を返す関数です。</p>



<p class="wp-block-paragraph">読み方は「<strong>マトリックス マルチプライ</strong>」です。「Matrix」は行列、「Multiply」は掛け算を意味します。</p>



<p class="wp-block-paragraph">行列の積とは、2つの行列を掛け合わせて新しい行列を作る計算のことです。通常の数値の掛け算とは異なり、行と列の組み合わせで計算します。</p>



<p class="wp-block-paragraph">行列計算というと難しく感じるかもしれませんが、使い方自体はシンプルです。2つのセル範囲を指定するだけで結果が返ってきますよ。</p>



<h2 class="wp-block-heading"><span id="toc2">MMULT関数の書き方</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=MMULT(配列1, 配列2)</code></pre>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>配列1</td><td>必須</td><td>掛け算の左側にあたる行列（セル範囲または配列定数）</td></tr><tr><td>配列2</td><td>必須</td><td>掛け算の右側にあたる行列（セル範囲または配列定数）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は2つだけなので、覚えやすいですね。</p>



<p class="wp-block-paragraph">セル範囲（例: <code>A1:B2</code>）のほか、配列定数（例: <code>{1,2;3,4}</code>）も指定できます。配列定数では、カンマが列区切り、セミコロンが行区切りです。</p>



<h3 class="wp-block-heading"><span id="toc5">行列の積が計算できる条件</span></h3>



<p class="wp-block-paragraph">MMULT関数で重要なのが、<strong>配列1の列数と配列2の行数が一致している</strong>ことです。この条件を満たさないとエラーになります。</p>



<p class="wp-block-paragraph">たとえば、配列1が2行<strong>3列</strong>で配列2が<strong>3行</strong>2列なら、列数と行数が「3」で一致するので計算できます。結果は2行2列の行列になりますよ。</p>



<pre class="wp-block-code"><code>配列1（2×3）× 配列2（3×2）= 結果（2×2）</code></pre>



<p class="wp-block-paragraph">結果の行列は「配列1の行数 × 配列2の列数」のサイズになります。</p>



<h2 class="wp-block-heading"><span id="toc6">MMULT関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc7">2×2行列どうしの積を求める</span></h3>



<p class="wp-block-paragraph">まずは最もシンプルな2×2行列から試してみましょう。</p>



<p class="wp-block-paragraph">セルA1:B2に配列1、セルD1:E2に配列2が入っているとします。</p>



<p class="wp-block-paragraph"><strong>配列1</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th></tr></thead><tbody><tr><td>1</td><td>1</td><td>2</td></tr><tr><td>2</td><td>3</td><td>4</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>配列2</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>D</th><th>E</th></tr></thead><tbody><tr><td>1</td><td>5</td><td>6</td></tr><tr><td>2</td><td>7</td><td>8</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">任意のセル（例: G1）に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=MMULT(A1:B2, D1:E2)</code></pre>



<p class="wp-block-paragraph">G1:H2に以下の結果が表示されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>G</th><th>H</th></tr></thead><tbody><tr><td>1</td><td>19</td><td>22</td></tr><tr><td>2</td><td>43</td><td>50</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">計算の仕組みを確認してみましょう。行列の積では、左の行列の「行」と右の行列の「列」を組み合わせて、対応する要素を掛けて足します。</p>



<pre class="wp-block-code"><code>G1 = 1×5 + 2×7 = 5 + 14 = 19
H1 = 1×6 + 2×8 = 6 + 16 = 22
G2 = 3×5 + 4×7 = 15 + 28 = 43
H2 = 3×6 + 4×8 = 18 + 32 = 50</code></pre>



<p class="wp-block-paragraph">配列定数を使って直接入力する方法もあります。</p>



<pre class="wp-block-code"><code>=MMULT({1,2;3,4}, {5,6;7,8})</code></pre>



<p class="wp-block-paragraph">こちらも同じ結果が返ります。</p>



<h3 class="wp-block-heading"><span id="toc8">異なるサイズの行列の積を求める（2×3と3×2）</span></h3>



<p class="wp-block-paragraph">次に、サイズが異なる行列の掛け算を見てみましょう。</p>



<p class="wp-block-paragraph">セルA1:C2に2×3の配列1、セルE1:F3に3×2の配列2が入っているとします。</p>



<p class="wp-block-paragraph"><strong>配列1（2×3）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th></tr></thead><tbody><tr><td>1</td><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>4</td><td>5</td><td>6</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>配列2（3×2）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>E</th><th>F</th></tr></thead><tbody><tr><td>1</td><td>7</td><td>8</td></tr><tr><td>2</td><td>9</td><td>10</td></tr><tr><td>3</td><td>11</td><td>12</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=MMULT(A1:C2, E1:F3)</code></pre>



<p class="wp-block-paragraph">配列1の列数（3）と配列2の行数（3）が一致しているので、問題なく計算できます。結果は2×2の行列です。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>H</th><th>I</th></tr></thead><tbody><tr><td>1</td><td>58</td><td>64</td></tr><tr><td>2</td><td>139</td><td>154</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">検算してみましょう。</p>



<pre class="wp-block-code"><code>H1 = 1×7 + 2×9 + 3×11 = 7 + 18 + 33 = 58
I1 = 1×8 + 2×10 + 3×12 = 8 + 20 + 36 = 64
H2 = 4×7 + 5×9 + 6×11 = 28 + 45 + 66 = 139
I2 = 4×8 + 5×10 + 6×12 = 32 + 50 + 72 = 154</code></pre>



<p class="wp-block-paragraph">結果が一致しましたね。</p>



<h2 class="wp-block-heading"><span id="toc9">実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc10">加重スコアを一括計算する</span></h3>



<p class="wp-block-paragraph">MMULT関数が実務で最も活躍するのが、<strong>加重スコアの計算</strong>です。複数の評価項目にそれぞれ重みを付けて合計スコアを出す場面で便利ですよ。</p>



<p class="wp-block-paragraph">たとえば、3人の候補者を「技術力」「コミュニケーション」「リーダーシップ」の3項目で評価するケースを考えます。</p>



<p class="wp-block-paragraph"><strong>評価スコア（A1:C3）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A（技術力）</th><th>B（コミュニケーション）</th><th>C（リーダーシップ）</th></tr></thead><tbody><tr><td>1</td><td>80</td><td>70</td><td>60</td></tr><tr><td>2</td><td>65</td><td>90</td><td>75</td></tr><tr><td>3</td><td>90</td><td>60</td><td>80</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>重み（E1:E3）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>E</th></tr></thead><tbody><tr><td>1</td><td>0.5</td></tr><tr><td>2</td><td>0.3</td></tr><tr><td>3</td><td>0.2</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">重みは「技術力50%・コミュニケーション30%・リーダーシップ20%」という配分です。</p>



<pre class="wp-block-code"><code>=MMULT(A1:C3, E1:E3)</code></pre>



<p class="wp-block-paragraph">結果は3行1列の行列で、各候補者の加重スコアが一発で計算されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>G</th></tr></thead><tbody><tr><td>1</td><td>73</td></tr><tr><td>2</td><td>74.5</td></tr><tr><td>3</td><td>79</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">検算してみましょう。</p>



<pre class="wp-block-code"><code>候補者1: 80×0.5 + 70×0.3 + 60×0.2 = 40 + 21 + 12 = 73
候補者2: 65×0.5 + 90×0.3 + 75×0.2 = 32.5 + 27 + 15 = 74.5
候補者3: 90×0.5 + 60×0.3 + 80×0.2 = 45 + 18 + 16 = 79</code></pre>



<p class="wp-block-paragraph">SUMPRODUCT関数でも同じ計算はできますが、候補者ごとに数式を書く必要があります。MMULT関数なら1つの数式で全員分をまとめて計算できるのがメリットです。</p>



<h3 class="wp-block-heading"><span id="toc11">MINVERSE関数と組み合わせて連立方程式を解く</span></h3>



<p class="wp-block-paragraph">MMULT関数と<a href="https://mashukabu.com/spreadsheet-minverse-function/">MINVERSE関数</a>を組み合わせると、連立方程式を解くことができます。</p>



<p class="wp-block-paragraph">連立方程式は行列で表すと <code>Ax = b</code> の形になります。両辺にAの逆行列を掛けると <code>x = A⁻¹b</code> で解が求まります。</p>



<p class="wp-block-paragraph">次の連立2元1次方程式を解いてみましょう。</p>



<pre class="wp-block-code"><code>2x + 3y = 8
 x + 2y = 5</code></pre>



<p class="wp-block-paragraph">係数行列AをセルA1:B2に、定数ベクトルbをセルD1:D2に入力します。</p>



<p class="wp-block-paragraph"><strong>係数行列A</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>2</td><td>1</td><td>2</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>定数ベクトルb</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>8</td></tr><tr><td>2</td><td>5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">任意のセル（例: F1）に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=MMULT(MINVERSE(A1:B2), D1:D2)</code></pre>



<p class="wp-block-paragraph">結果は以下のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th></tr></thead><tbody><tr><td>1</td><td>1</td></tr><tr><td>2</td><td>2</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">つまり x=1, y=2 が解です。検算すると 2(1)+3(2)=8、1(1)+2(2)=5 で合っていますね。</p>



<p class="wp-block-paragraph">連立方程式を解く前に、<a href="https://mashukabu.com/spreadsheet-mdeterm-function/">MDETERM関数</a>で行列式が0でないか確認しておくと安心です。行列式が0の場合は逆行列が存在せず、解が求められません。</p>



<pre class="wp-block-code"><code>=MDETERM(A1:B2)</code></pre>



<p class="wp-block-paragraph">結果は 2×2 &#8211; 3×1 = 1 で、0ではないので逆行列が存在します。</p>



<h3 class="wp-block-heading"><span id="toc12">TRANSPOSE関数と組み合わせて転置してから掛ける</span></h3>



<p class="wp-block-paragraph">行列の向きが合わないときは、<a href="https://mashukabu.com/spreadsheet-transpose-function/">TRANSPOSE関数</a>で転置してからMMULT関数に渡すと便利です。</p>



<p class="wp-block-paragraph">たとえば、データが横方向（1行3列）に並んでいて、重みも横方向（1行3列）になっている場合を考えます。</p>



<p class="wp-block-paragraph"><strong>データ（A1:C1）</strong>: <code>{10, 20, 30}</code><br><strong>重み（A2:C2）</strong>: <code>{0.2, 0.3, 0.5}</code></p>



<p class="wp-block-paragraph">このままではMMULT関数の条件（配列1の列数=配列2の行数）を満たしません。重みを転置して縦方向に変換します。</p>



<pre class="wp-block-code"><code>=MMULT(A1:C1, TRANSPOSE(A2:C2))</code></pre>



<p class="wp-block-paragraph">結果は <code>10×0.2 + 20×0.3 + 30×0.5 = 2 + 6 + 15 = 23</code> です。</p>



<h2 class="wp-block-heading"><span id="toc13">よくあるエラーと対処法</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>配列1の列数と配列2の行数が一致していない</td><td>行列のサイズを確認する。必要に応じてTRANSPOSE関数で転置する</td></tr><tr><td>#VALUE!</td><td>セルに数値以外（テキストや空白）が含まれている</td><td>対象範囲のセルがすべて数値で埋まっているか確認する</td></tr><tr><td>#REF!</td><td>結果の行列がシートの範囲を超える</td><td>出力先に十分なスペースを確保する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">最も多いのは、行列のサイズが合わないことによる <code>#VALUE!</code> エラーです。配列1の列数と配列2の行数が同じかどうか、まず確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc14">似た関数との違い・使い分け</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>用途</th><th>違い</th></tr></thead><tbody><tr><td>MMULT</td><td>行列の積を求める</td><td>2つの行列を掛け合わせて新しい行列を生成</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-minverse-function/">MINVERSE</a></td><td>逆行列を求める</td><td>正方行列の逆行列を返す。MMULTと組み合わせて連立方程式に使う</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-mdeterm-function/">MDETERM</a></td><td>行列式を求める</td><td>正方行列の行列式（スカラー値）を返す。逆行列の存在判定に使う</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-transpose-function/">TRANSPOSE</a></td><td>行列の転置</td><td>行と列を入れ替える。MMULTの前処理として使うことが多い</td></tr><tr><td>SUMPRODUCT</td><td>要素ごとの積の合計</td><td>同じサイズの配列の対応要素を掛けて合計。行列の積とは計算方法が異なる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">MMULTは「行列の積」、SUMPRODUCTは「要素ごとの積の合計」です。1行×1列の結果ならSUMPRODUCTでも同じ答えが出ますが、結果が行列になる場合はMMULTを使いましょう。</p>



<h2 class="wp-block-heading"><span id="toc15">まとめ</span></h2>



<p class="wp-block-paragraph">スプレッドシートのMMULT関数は、2つの行列の積を求める関数です。</p>



<p class="wp-block-paragraph">ポイントを振り返りましょう。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=MMULT(配列1, 配列2)</code> で行列の積を計算する</li><li><strong>条件</strong>: 配列1の列数と配列2の行数が一致している必要がある</li><li><strong>加重スコア</strong>: 評価項目×重みの計算を1つの数式でまとめて処理できる</li><li><strong>連立方程式</strong>: MINVERSE関数と組み合わせて <code>=MMULT(MINVERSE(A), b)</code> で解が求まる</li><li><strong>転置との連携</strong>: 行列の向きが合わないときはTRANSPOSE関数で変換する</li></ul>



<p class="wp-block-paragraph">加重スコアの計算は人事評価や商品比較など、さまざまな場面で使えます。ぜひ試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-mmult-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
