<?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/%e9%85%8d%e5%88%97%e6%95%b0%e5%bc%8f/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 11 Jun 2026 23:51:35 +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>【Excel】MODE.MULT関数の使い方｜最頻値が複数あるときに全部取り出す配列関数</title>
		<link>https://mashukabu.com/excel-mode-mult/</link>
					<comments>https://mashukabu.com/excel-mode-mult/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 09 May 2026 23:17:44 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[最頻値]]></category>
		<category><![CDATA[統計関数]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6750</guid>

					<description><![CDATA[ExcelのMODE.MULT関数の使い方を解説します。データセットの中で同じ最高頻度を持つ最頻値を「複数」配列で返す関数で、アンケートで同率1位の回答が複数あるときに全部抽出できます。CSE（Ctrl+Shift+Enter）入力と動的配列スピルの違い、MODE.SNGLとの使い分け、#N/Aエラーの正しい解釈までまとめました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">社内アンケートを集計していて「最も多かった回答」を出そうとしたら、同じ票数のものが2つも3つもあった。そんなとき、普通の最頻値関数だと1つしか返ってこなくて困った経験はないでしょうか。</p>



<p class="wp-block-paragraph">そこで活躍するのが <strong>MODE.MULT関数</strong> です。同率1位の最頻値をすべて配列としてまとめて返してくれるので、「同点トップが複数あるケース」も漏らさず取得できます。</p>



<p class="wp-block-paragraph">この記事では、MODE.MULT関数の構文から、CSE入力と動的配列スピルの違い、MODE.SNGLとの使い分け、よくあるエラーの読み解き方までを実例で整理します。</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">ExcelのMODE.MULT関数とは？</a></li><li><a href="#toc2" tabindex="0">MODE.MULT関数の書き方（構文と引数）</a></li><li><a href="#toc3" tabindex="0">MODE.SNGLとの違いを早見表で整理</a></li><li><a href="#toc4" tabindex="0">実務例：アンケート評価点の同率最多回答を全部取得する</a><ol><li><a href="#toc5" tabindex="0">Microsoft 365 / Excel 2021以降の場合（動的配列スピル）</a></li><li><a href="#toc6" tabindex="0">Excel 2019以前の場合（CSE入力）</a></li></ol></li><li><a href="#toc7" tabindex="0">CSE入力と動的配列スピルの違い</a></li><li><a href="#toc8" tabindex="0">#N/Aエラーが返る2つのパターン</a><ol><li><a href="#toc9" tabindex="0">パターン1：余ったセルに表示される #N/A（正常動作）</a></li><li><a href="#toc10" tabindex="0">パターン2：すべてのセルに #N/A が表示される（重複なし）</a></li></ol></li><li><a href="#toc11" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc12" tabindex="0">関連する最頻値・統計関数</a></li><li><a href="#toc13" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのMODE.MULT関数とは？</span></h2>



<p class="wp-block-paragraph">ExcelのMODE.MULT関数（読み方：モード・マルト）は、<strong>データセットの中で最も頻繁に出現する数値（最頻値）を、複数まとめて配列で返す関数</strong>です。関数名は「<strong>MODE</strong>（最頻値）＋<strong>MULT</strong>iple（複数）」の組み合わせで、「複数の最頻値」を意味します。</p>



<p class="wp-block-paragraph">通常の最頻値関数（MODEやMODE.SNGL）は、同じ最高頻度の値が複数あっても <strong>最初に見つかった1つだけ</strong> を返します。一方MODE.MULTは、同率1位の値を <strong>すべて配列として返す</strong> のが最大の特徴です。</p>



<p class="wp-block-paragraph">たとえば 1, 2, 3, 3, 4, 5, 5 というデータでは、3も5も2回ずつ登場します。MODE.SNGLでは「3」だけが返りますが、MODE.MULTを使えば「3」と「5」の両方を取得できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MODE.MULTはExcel 2010で追加された関数です。それ以前のExcelには存在せず、後継関数として登場しました。Excel 2010以降であれば、Mac版・Windows版を問わず利用できます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">MODE.MULT関数の書き方（構文と引数）</span></h2>



<p class="wp-block-paragraph">MODE.MULT関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=MODE.MULT(数値1, [数値2], ...)</code></pre>



<p class="wp-block-paragraph">引数の仕様は次の表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>説明</th></tr></thead><tbody><tr><td>数値1</td><td>必須</td><td>最頻値を求めたい1つ目の数値またはセル範囲</td></tr><tr><td>数値2, &#8230;</td><td>任意</td><td>2つ目以降の数値またはセル範囲（最大254個まで指定可）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は <strong>縦方向の配列</strong> です。同率最頻値の個数だけ縦に値が並び、選択範囲が余ったセルには #N/A が表示されます。これは「ここまでで最頻値は出尽くしました」というサインで、エラーではなく正常動作です。</p>



<p class="wp-block-paragraph">引数に指定したセルのうち、テキスト・論理値・空白セルは無視されます。ただし数値の <strong>0（ゼロ）</strong> はカウント対象になる点に注意してください。</p>



<h2 class="wp-block-heading"><span id="toc3">MODE.SNGLとの違いを早見表で整理</span></h2>



<p class="wp-block-paragraph">「最頻値を返す関数」は3種類あります。それぞれの違いを整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MODE</th><th>MODE.SNGL</th><th>MODE.MULT</th></tr></thead><tbody><tr><td>戻り値</td><td>1つ</td><td>1つ</td><td>複数（配列）</td></tr><tr><td>同頻度の値が複数あるとき</td><td>最初に現れた値のみ</td><td>最初に現れた値のみ</td><td>すべて返す</td></tr><tr><td>入力方法</td><td>通常Enter</td><td>通常Enter</td><td>CSE または通常Enter（スピル対応版）</td></tr><tr><td>関数の分類</td><td>互換性関数</td><td>統計関数</td><td>統計関数</td></tr><tr><td>導入時期</td><td>Excel 2007以前</td><td>Excel 2010以降</td><td>Excel 2010以降</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「同率最多が出るかもしれない」場合はMODE.MULT、「最頻値は1つで十分」な場合は <a href="https://mashukabu.com/excel-mode-sngl/">MODE.SNGL関数</a> を選ぶのが基本です。MODE.SNGLは1つしか返ってこないため、同率最多の見落としに気づけないリスクがあります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">実務例：アンケート評価点の同率最多回答を全部取得する</span></h2>



<p class="wp-block-paragraph">社員研修の満足度アンケート（5段階評価）を集計するシーンで考えてみます。10人の回答が次のように集まりました。</p>



<figure class="wp-block-table"><table><thead><tr><th>回答者</th><th>評価点</th></tr></thead><tbody><tr><td>田中</td><td>5</td></tr><tr><td>佐藤</td><td>4</td></tr><tr><td>鈴木</td><td>5</td></tr><tr><td>高橋</td><td>3</td></tr><tr><td>伊藤</td><td>4</td></tr><tr><td>渡辺</td><td>5</td></tr><tr><td>山本</td><td>4</td></tr><tr><td>中村</td><td>2</td></tr><tr><td>小林</td><td>4</td></tr><tr><td>加藤</td><td>5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">評価点が B2:B11 に入っているとします。最頻値を求めると、4点が4回、5点も4回登場しており、同率1位という状況です。</p>



<h3 class="wp-block-heading"><span id="toc5">Microsoft 365 / Excel 2021以降の場合（動的配列スピル）</span></h3>



<p class="wp-block-paragraph">任意のセル（たとえば D2）に通常通り入力するだけです。</p>



<pre class="wp-block-code"><code>=MODE.MULT(B2:B11)</code></pre>



<p class="wp-block-paragraph">Enterを押すと、D2に「4」、D3に「5」が <strong>自動でスピル展開</strong> されます。範囲をあらかじめ選択する必要はありません。</p>



<h3 class="wp-block-heading"><span id="toc6">Excel 2019以前の場合（CSE入力）</span></h3>



<p class="wp-block-paragraph">「同率最多が何個出るか」が事前に分からないので、念のため数個ぶんのセル（たとえば D2:D6）を縦に選択しておきます。続けて数式バーに次の数式を入力します。</p>



<pre class="wp-block-code"><code>=MODE.MULT(B2:B11)</code></pre>



<p class="wp-block-paragraph">そのまま <strong>Ctrl + Shift + Enter</strong> を押すと、配列数式として確定されます。数式バーには <code>{=MODE.MULT(B2:B11)}</code> と中括弧が付き、選択範囲に「4」「5」「#N/A」「#N/A」「#N/A」のように展開されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>Excel 2019以前で通常のEnterで確定すると、最初の1つ（この例では「4」）だけが表示され、残りの最頻値が取得できません。古いExcelで使うときは必ず <strong>Ctrl + Shift + Enter</strong> で確定してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">CSE入力と動的配列スピルの違い</span></h2>



<p class="wp-block-paragraph">MODE.MULTの入力方法は、Excelのバージョンによって2通りに分かれます。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>CSE入力（旧来Excel）</th><th>動的配列スピル（新Excel）</th></tr></thead><tbody><tr><td>対象バージョン</td><td>Excel 2010〜2019</td><td>Microsoft 365、Excel 2021以降</td></tr><tr><td>入力範囲</td><td>事前にセル範囲を選択</td><td>単一セルに入力するだけ</td></tr><tr><td>確定キー</td><td>Ctrl + Shift + Enter</td><td>通常のEnter</td></tr><tr><td>数式表示</td><td><code>{=MODE.MULT(...)}</code></td><td><code>=MODE.MULT(...)</code></td></tr><tr><td>結果が増減した場合</td><td>範囲を再指定して再入力</td><td>自動的に縮小・拡大</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">新しい動的配列スピルのほうが圧倒的に扱いやすいです。Microsoft 365をお使いの方は、結果が何個になるかを気にせず1セルに入力するだけで済みます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>スピル展開時、隣接セルにすでにデータが入っていると <strong>#SPILL!</strong> エラーになります。スピル先のセル（この例ではD3以降）が空であることを確認してから入力してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">#N/Aエラーが返る2つのパターン</span></h2>



<p class="wp-block-paragraph">MODE.MULT関数を使うと #N/A エラーをよく目にします。これには2つのパターンがあり、意味がまったく違うので区別しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc9">パターン1：余ったセルに表示される #N/A（正常動作）</span></h3>



<p class="wp-block-paragraph">CSE入力で5セル選択したけれど、実際に最頻値が2つしかなかった場合、3〜5番目のセルには #N/A が表示されます。これは「これ以上の最頻値はありません」という終端マーカーで、エラーではなく正常動作です。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン2：すべてのセルに #N/A が表示される（重複なし）</span></h3>



<p class="wp-block-paragraph">データセットに重複する値が1つもない（全員バラバラ）場合、最頻値そのものが定義できないため、すべてのセルに #N/A が返ります。これは仕様上の動作で、データ側の特性を示しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>パターン2が表示されたら「データに重複がないので最頻値が存在しない」と読み替えましょう。エラーを隠したい場合は <code>=IFERROR(MODE.MULT(範囲), "重複なし")</code> で文字列に置き換えられます。</p></blockquote>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#N/A</code>（余りセル）</td><td>最頻値がそれ以上ない</td><td>正常動作。範囲を狭めるかIFERRORで非表示</td></tr><tr><td><code>#N/A</code>（全セル）</td><td>データに重複値が一つもない</td><td>データ側を確認。IFERRORで代替表示</td></tr><tr><td><code>#VALUE!</code></td><td>範囲内に文字化けや特殊な値がある</td><td>範囲内の値が数値であることを確認</td></tr><tr><td><code>#SPILL!</code></td><td>スピル先のセルにデータが入っている</td><td>スピル先のセルを空にする</td></tr><tr><td><code>#NAME?</code></td><td>Excel 2007以前で実行している</td><td>Excel 2010以降を使うか、MODE関数で代替</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に多いのが <strong>#SPILL!</strong> です。動的配列スピル対応のExcelで MODE.MULT を1セルに入れたとき、隣接セルが埋まっていると展開できません。表組みの中で使うときは、結果が広がる方向のセルを空けておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc12">関連する最頻値・統計関数</span></h2>



<p class="wp-block-paragraph">中心傾向や頻度の分析では、MODE系のほかにもいくつか関数を組み合わせて使うと便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-mode-sngl/">MODE.SNGL</a></td><td>最頻値を1つだけ返す（同率最多があっても最小値を返す）</td></tr><tr><td>MODE</td><td>旧来の最頻値関数（互換性関数。新規利用は MODE.SNGL を推奨）</td></tr><tr><td>AVERAGE</td><td>算術平均を求める</td></tr><tr><td>MEDIAN</td><td>中央値を求める</td></tr><tr><td>COUNTIF</td><td>特定の値の出現回数をカウント</td></tr><tr><td>FREQUENCY</td><td>度数分布を求める</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">最頻値を出した後に「その値が何件あるのか」を数えたい場合は COUNTIF関数 と組み合わせると便利です。</p>



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



<p class="wp-block-paragraph">ExcelのMODE.MULT関数は、最頻値が複数あるケースを漏らさず抽出できる配列関数です。要点を整理しておきます。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=MODE.MULT(数値1, [数値2], ...)</code></li><li><strong>戻り値</strong>: 縦方向の配列（同率最頻値をすべて含む）</li><li><strong>Microsoft 365 / Excel 2021以降</strong>: 通常Enterで自動スピル展開</li><li><strong>Excel 2019以前</strong>: 範囲を選択して <strong>Ctrl + Shift + Enter</strong>（CSE）</li><li><strong>余りセルの #N/A は正常動作</strong>（最頻値の終端マーカー）</li><li><strong>全セル #N/A はデータに重複がない</strong> ことを示す</li></ul>



<p class="wp-block-paragraph">アンケート集計で「同率1位の回答を全部出したい」場面や、製品評価で「同じ得票数のレビュー点を全部取り出したい」場面では、MODE.MULTがそのまま答えを返してくれます。1つだけ取得したい場合は <a href="https://mashukabu.com/excel-mode-sngl/">MODE.SNGL関数</a> と使い分けましょう。</p>



<p class="wp-block-paragraph">中心傾向の3指標である AVERAGE関数、MEDIAN関数、MODE.MULT/MODE.SNGLを揃えて使えるようになると、データの「真ん中」を多角的に捉えられるようになります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-mode-mult/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのMUNIT関数の使い方｜単位行列の作成とMMULT・MINVERSEでの活用例</title>
		<link>https://mashukabu.com/excel-function-howto-use-munit/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-munit/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 13:25:47 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[MINVERSE関数]]></category>
		<category><![CDATA[MMULT関数]]></category>
		<category><![CDATA[MUNIT関数]]></category>
		<category><![CDATA[単位行列]]></category>
		<category><![CDATA[正方行列]]></category>
		<category><![CDATA[行列計算]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6147</guid>

					<description><![CDATA[ExcelのMUNIT関数で単位行列をワンステップで作成する方法を解説します。構文と引数の基本から、2×2・3×3の作成例、MMULT関数での行列積検証、MINVERSE関数で求めた逆行列の検算、連立方程式の解の検算まで実務活用例を紹介。スピルとCSE配列数式の違い、#VALUE!エラーの対処法もわかります。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">MINVERSE関数で逆行列を求めたはいいけど、「本当に正しい結果か確認したい」と思ったことはありませんか？</p>



<p class="wp-block-paragraph">ExcelのMUNIT関数を使えば、単位行列をワンステップで作成できます。MMULT関数と組み合わせることで、逆行列の正確さを簡単に検証できますよ。</p>



<p class="wp-block-paragraph">この記事では、ExcelのMUNIT関数の基本的な使い方から、行列計算の検証・連立方程式の解の確認まで、実務的な活用例を紹介します。スピルとCSE配列数式の入力方法の違いも解説しますので、お使いのExcelのバージョンに合わせて確認してみてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのMUNIT関数とは？</a><ol><li><a href="#toc2" tabindex="0">単位行列とは</a></li><li><a href="#toc3" tabindex="0">対応バージョン</a></li></ol></li><li><a href="#toc4" tabindex="0">MUNIT関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">配列数式としての入力方法</a></li></ol></li><li><a href="#toc8" tabindex="0">MUNIT関数の基本的な使い方</a><ol><li><a href="#toc9" tabindex="0">2×2の単位行列を作成する</a></li><li><a href="#toc10" tabindex="0">3×3の単位行列を作成する</a></li><li><a href="#toc11" tabindex="0">大きな次元の単位行列を作成する</a></li></ol></li><li><a href="#toc12" tabindex="0">実務で役立つ活用例</a><ol><li><a href="#toc13" tabindex="0">A × I = A の性質をMMULTで検証する</a></li><li><a href="#toc14" tabindex="0">MINVERSE関数で求めた逆行列を検算する</a></li><li><a href="#toc15" tabindex="0">連立方程式の解を検算する</a></li></ol></li><li><a href="#toc16" tabindex="0">スピルとCSE配列数式</a><ol><li><a href="#toc17" tabindex="0">スピル対応（Microsoft 365 / Excel 2021以降）</a></li><li><a href="#toc18" tabindex="0">CSE配列数式（Excel 2019以前）</a></li></ol></li><li><a href="#toc19" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc20" tabindex="0">引数が1以下のとき（#VALUE!エラー）</a></li><li><a href="#toc21" tabindex="0">引数が文字列のとき（#VALUE!エラー）</a></li><li><a href="#toc22" tabindex="0">スピル先のセルが埋まっているとき（#SPILL!エラー）</a></li></ol></li><li><a href="#toc23" tabindex="0">関連する行列関数との使い分け</a></li><li><a href="#toc24" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのMUNIT関数とは？</span></h2>



<p class="wp-block-paragraph">ExcelのMUNIT関数（読み方: ムユニット関数）は、<strong>指定したサイズの単位行列（たんいぎょうれつ）を返す関数</strong>です。</p>



<p class="wp-block-paragraph">「MUNIT」は「Matrix Unit（行列の単位）」を縮めた名前です。</p>



<h3 class="wp-block-heading"><span id="toc2">単位行列とは</span></h3>



<p class="wp-block-paragraph">単位行列とは、<strong>対角線の要素がすべて1で、それ以外の要素がすべて0の正方行列</strong>のことです。</p>



<p class="wp-block-paragraph">3×3の単位行列だと、こんな形になります。</p>



<pre class="wp-block-code"><code>1  0  0
0  1  0
0  0  1</code></pre>



<p class="wp-block-paragraph">掛け算の「1」と同じ役割を行列の世界で担っています。どんな行列Aに対しても「A × I = A」（Iが単位行列）が成り立つんですね。</p>



<p class="wp-block-paragraph">この性質のおかげで、行列計算の検証に欠かせない存在です。</p>



<h3 class="wp-block-heading"><span id="toc3">対応バージョン</span></h3>



<p class="wp-block-paragraph">MUNIT関数はExcel 2013以降で使えます。Microsoft 365・Excel 2024・Excel 2021・Excel 2019・Excel 2016・Excel 2013に対応しています。</p>



<p class="wp-block-paragraph">Excel 2010以前では使えないので注意してください。</p>



<h2 class="wp-block-heading"><span id="toc4">MUNIT関数の書き方（構文と引数）</span></h2>



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



<pre class="wp-block-code"><code>=MUNIT(次元数)</code></pre>



<p class="wp-block-paragraph">カッコの中に、作りたい行列のサイズ（行数＝列数）を整数で入力します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>次元数</td><td>必須</td><td>作成する正方行列のサイズ。2以上の正の整数を指定する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけで、シンプルな構文です。</p>



<h3 class="wp-block-heading"><span id="toc7">配列数式としての入力方法</span></h3>



<p class="wp-block-paragraph">MUNIT関数は複数のセルに結果を返す「配列関数」です。入力方法がExcelのバージョンによって異なります。</p>



<p class="wp-block-paragraph"><strong>Microsoft 365・Excel 2021以降（スピル対応）</strong></p>



<p class="wp-block-paragraph">先頭セルに入力するだけで、必要な範囲に自動で展開されます。</p>



<pre class="wp-block-code"><code>=MUNIT(3)</code></pre>



<p class="wp-block-paragraph">A1セルに入力すると、A1〜C3の3×3範囲に自動展開（スピル）されます。</p>



<p class="wp-block-paragraph"><strong>Excel 2019以前（CSE配列数式）</strong></p>



<p class="wp-block-paragraph">結果を表示したい範囲（3×3なら9セル）を先に選択してから、数式を入力してCtrl+Shift+Enterで確定します。</p>



<ol class="wp-block-list"><li>A1〜C3の9セルを選択</li><li><code>=MUNIT(3)</code> と入力</li><li><strong>Ctrl+Shift+Enter</strong>で確定</li></ol>



<p class="wp-block-paragraph">数式バーに <code>{=MUNIT(3)}</code> のように波カッコがつけば成功です。</p>



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



<h3 class="wp-block-heading"><span id="toc9">2×2の単位行列を作成する</span></h3>



<pre class="wp-block-code"><code>=MUNIT(2)</code></pre>



<p class="wp-block-paragraph">スピル対応Excelなら、左上のセルに入力するだけで次の行列が展開されます。</p>



<pre class="wp-block-code"><code>1  0
0  1</code></pre>



<h3 class="wp-block-heading"><span id="toc10">3×3の単位行列を作成する</span></h3>



<pre class="wp-block-code"><code>=MUNIT(3)</code></pre>



<p class="wp-block-paragraph">結果として次の行列が展開されます。</p>



<pre class="wp-block-code"><code>1  0  0
0  1  0
0  0  1</code></pre>



<h3 class="wp-block-heading"><span id="toc11">大きな次元の単位行列を作成する</span></h3>



<pre class="wp-block-code"><code>=MUNIT(5)</code></pre>



<p class="wp-block-paragraph">5×5（25セル）の単位行列が展開されます。大きなサイズでも引数を変えるだけなので便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc12">実務で役立つ活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc13">A × I = A の性質をMMULTで検証する</span></h3>



<p class="wp-block-paragraph">行列Aに単位行列Iを掛けると、Aがそのまま返ることを確認してみましょう。</p>



<p class="wp-block-paragraph">次の2×2行列Aがセル範囲A1:B2に入っているとします。</p>



<pre class="wp-block-code"><code>2  3
1  4</code></pre>



<p class="wp-block-paragraph">単位行列IをD1:E2に用意します。</p>



<pre class="wp-block-code"><code>=MUNIT(2)</code></pre>



<p class="wp-block-paragraph">そして、AとIの積をG1:H2に求めます。</p>



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



<p class="wp-block-paragraph">結果は元のAと同じになります。</p>



<pre class="wp-block-code"><code>2  3
1  4</code></pre>



<p class="wp-block-paragraph">「行列に単位行列を掛けても変わらない」という性質が確認できましたね。これは行列計算の基本チェックとして使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">MINVERSE関数で求めた逆行列を検算する</span></h3>



<p class="wp-block-paragraph">逆行列の正確さを確認するのに、MUNIT関数は特に役立ちます。</p>



<p class="wp-block-paragraph">行列A（A1:B2）の逆行列をMINVERSEで求め、それをAに掛けた結果が単位行列になるか確認しましょう。</p>



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



<p class="wp-block-paragraph">正しく計算できていれば、単位行列（対角が1、それ以外が0）が返ります。</p>



<p class="wp-block-paragraph">MUNIT関数で生成した単位行列と比較することで、計算結果が一致しているか目視で確認できます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>浮動小数点演算の影響で、0が「9.99E-17」などの非常に小さな数として表示されることがあります。これは計算上の誤差で正常な動作です。ROUND(結果, 10) のように丸めて比較するとすっきりします。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">連立方程式の解を検算する</span></h3>



<p class="wp-block-paragraph">連立方程式を行列で解いた後、解が正しいかMUNIT関数を使って確認できます。</p>



<p class="wp-block-paragraph">連立方程式の解は <code>X = A⁻¹ × B</code>（Aが係数行列、Bが定数ベクトル）で求まります。</p>



<p class="wp-block-paragraph">解Xが正しければ、<code>A × X = B</code> が成り立つはずです。MINVERSEとMMULTで求めた解をAに掛けて、元のBと一致するか確認してみてください。</p>



<h2 class="wp-block-heading"><span id="toc16">スピルとCSE配列数式</span></h2>



<h3 class="wp-block-heading"><span id="toc17">スピル対応（Microsoft 365 / Excel 2021以降）</span></h3>



<p class="wp-block-paragraph">スピル対応のExcelでは、MUNIT関数を先頭セルに入力するだけで、必要な範囲に自動展開されます。</p>



<ul class="wp-block-list"><li>先頭セルだけを選択して入力</li><li>Enterで確定（Ctrl+Shift+Enterは不要）</li><li>スピル範囲は自動調整される</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>スピル範囲に他のデータが入っていると「#SPILL!」エラーが出ます。出力先のセル範囲を空にしておきましょう。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc18">CSE配列数式（Excel 2019以前）</span></h3>



<p class="wp-block-paragraph">スピル非対応のExcelでは、出力したい範囲を先に選択してからCtrl+Shift+Enterで確定します。</p>



<ol class="wp-block-list"><li>出力先のセル範囲（例: 3×3なら9セル）を先に選択</li><li>数式バーに <code>=MUNIT(3)</code> と入力</li><li><strong>Ctrl+Shift+Enter</strong>で確定</li><li>数式バーに <code>{=MUNIT(3)}</code> と表示されれば成功</li></ol>



<p class="wp-block-paragraph">CSE配列数式として確定した後、個別のセルを編集することはできません。修正するときは範囲全体を選択して再入力します。</p>



<h2 class="wp-block-heading"><span id="toc19">よくあるエラーと対処法</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以下の整数</td><td>2以上の正の整数を指定する</td></tr><tr><td>#NUM!</td><td>引数が非常に大きい、または0以下</td><td>現実的なサイズ（50以下推奨）を指定する</td></tr><tr><td>#SPILL!</td><td>出力先のセルに別のデータがある</td><td>出力先の範囲を空にする（Microsoft 365/2021以降）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc20">引数が1以下のとき（#VALUE!エラー）</span></h3>



<pre class="wp-block-code"><code>=MUNIT(1)</code></pre>



<p class="wp-block-paragraph">1×1の単位行列は「1」のスカラーになりますが、Excelでは#VALUE!エラーが返ることがあります。引数は2以上を指定してください。</p>



<h3 class="wp-block-heading"><span id="toc21">引数が文字列のとき（#VALUE!エラー）</span></h3>



<pre class="wp-block-code"><code>=MUNIT(&quot;3&quot;)</code></pre>



<p class="wp-block-paragraph">引数には文字列を使えません。セル参照を使う場合は、参照先が数値かどうか確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc22">スピル先のセルが埋まっているとき（#SPILL!エラー）</span></h3>



<p class="wp-block-paragraph">スピル対応Excelで出力先のセル範囲に別のデータが入っていると#SPILL!エラーになります。MUNIT(3)なら3×3の9セル分を空けておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc23">関連する行列関数との使い分け</span></h2>



<p class="wp-block-paragraph">行列を扱うExcel関数を整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>動作</th><th>主な用途</th></tr></thead><tbody><tr><td><strong>MUNIT</strong></td><td><strong>単位行列を返す</strong></td><td><strong>行列計算の検証・逆行列の確認</strong></td></tr><tr><td>MMULT</td><td>行列の積を返す</td><td>行列の掛け算</td></tr><tr><td>MINVERSE</td><td>逆行列を返す</td><td>連立方程式を解く</td></tr><tr><td>MDETERM</td><td>行列式（スカラー）を返す</td><td>行列が正則かどうか判定</td></tr><tr><td>TRANSPOSE</td><td>転置行列を返す</td><td>行・列を入れ替える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">MUNIT関数は単独で使うより、<strong>MMULT・MINVERSEと組み合わせて「計算結果の検証」に使う</strong>場面が多いです。</p>



<p class="wp-block-paragraph">各関数の使い方は以下の記事で詳しく解説しています。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-mmult/">ExcelのMMULT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-minverse/">ExcelのMINVERSE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-mdeterm/">ExcelのMDETERM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-transpose/">ExcelのTRANSPOSE関数の使い方</a></li></ul>



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



<p class="wp-block-paragraph">ExcelのMUNIT関数は、指定したサイズの単位行列をワンステップで作成できる関数です。</p>



<p class="wp-block-paragraph">この記事のポイントをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>基本構文は <code>=MUNIT(次元数)</code> で、作りたい正方行列のサイズを整数で指定する</li><li>Microsoft 365・Excel 2021以降はスピルで自動展開。Excel 2019以前はCtrl+Shift+Enterで確定</li><li>A × I = Aの性質検証や、MINVERSEの逆行列検算に組み合わせて使う</li><li>引数は2以上の正の整数が必要。1以下や文字列は#VALUE!エラーになる</li><li>浮動小数点誤差で0が微小値になる場合はROUNDで丸めて比較する</li></ul>



<p class="wp-block-paragraph">行列計算をExcelで扱うときは、MMULT・MINVERSEと組み合わせてMUNIT関数で検算する習慣をつけると、計算ミスを早めに発見できますよ。</p>



<p class="wp-block-paragraph">スプレッドシートでも同じ関数が使えます。Googleスプレッドシート版の使い方は<a href="https://mashukabu.com/spreadsheet-munit-function/">スプレッドシートのMUNIT関数の使い方</a>で紹介しています。</p>



<p class="wp-block-paragraph">行列関数のシリーズ記事もあわせてご参考にどうぞ。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-mmult/">ExcelのMMULT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-minverse/">ExcelのMINVERSE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-mdeterm/">ExcelのMDETERM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-transpose/">ExcelのTRANSPOSE関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-munit/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのLINEST関数の使い方｜線形回帰の係数を求める方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-linest/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-linest/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 09:58:02 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[LINEST関数]]></category>
		<category><![CDATA[回帰分析]]></category>
		<category><![CDATA[統計関数]]></category>
		<category><![CDATA[線形回帰]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5808</guid>

					<description><![CDATA[ExcelのLINEST関数の使い方を初心者向けに解説。最小二乗法で線形回帰の傾き・切片を求める基本構文、補正=TRUEで返される5行2列の統計情報の読み方、FORECAST.LINEAR関数と組み合わせた売上予測の手順まで丁寧に説明します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「売上データから成長率を数値で出したいけど、グラフの近似曲線だけだと正確な値がわからない&#8230;」そんな経験はありませんか。ExcelのSLOPE関数やINTERCEPT関数で傾き・切片は出せますが、回帰モデルの精度まではわかりませんよね。</p>



<p class="wp-block-paragraph">ExcelのLINEST関数を使えば、最小二乗法による線形回帰の傾き・切片だけでなく、決定係数R²やF統計量まで一括で取得できます。この記事では基本構文から統計情報の読み解き方、FORECAST.LINEAR関数と組み合わせた予測の手順まで丁寧に解説しますよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">LINEST関数とは？どんなときに使う関数か</a><ol><li><a href="#toc2" tabindex="0">SLOPE関数・INTERCEPT関数との違い</a></li></ol></li><li><a href="#toc3" tabindex="0">LINEST関数の構文と4つの引数</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">引数の一覧</a></li><li><a href="#toc6" tabindex="0">引数①：既知のy（必須）</a></li><li><a href="#toc7" tabindex="0">引数②：既知のx（省略可）</a></li><li><a href="#toc8" tabindex="0">引数③：定数（省略可）</a></li><li><a href="#toc9" tabindex="0">引数④：補正（省略可）</a></li></ol></li><li><a href="#toc10" tabindex="0">基本的な使い方（傾きと切片を求める）</a></li><li><a href="#toc11" tabindex="0">補正=TRUEで返される5行2列の統計情報を読み解く</a><ol><li><a href="#toc12" tabindex="0">1行目：傾きm・切片b（回帰式の本体）</a></li><li><a href="#toc13" tabindex="0">2行目：各係数の標準誤差</a></li><li><a href="#toc14" tabindex="0">3行目：決定係数R²とyの標準誤差</a></li><li><a href="#toc15" tabindex="0">4行目：F統計量と自由度</a></li><li><a href="#toc16" tabindex="0">5行目：回帰平方和と残差平方和</a></li></ol></li><li><a href="#toc17" tabindex="0">実践的な使い方：LINEST + FORECAST.LINEARで売上予測</a><ol><li><a href="#toc18" tabindex="0">Step1：LINESTでR²を確認する</a></li><li><a href="#toc19" tabindex="0">Step2：FORECAST.LINEARで将来の売上を予測する</a></li><li><a href="#toc20" tabindex="0">複数の将来値をまとめて予測する（TREND関数）</a></li></ol></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">#VALUE!エラー：配列数式の入力ミス</a></li><li><a href="#toc23" tabindex="0">#REF!エラー：配列サイズの不一致</a></li><li><a href="#toc24" tabindex="0">#N/A エラー：データが不足している</a></li></ol></li><li><a href="#toc25" tabindex="0">似た関数との違い・使い分け</a></li><li><a href="#toc26" tabindex="0">よくある質問</a></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">LINEST関数とは？どんなときに使う関数か</span></h2>



<p class="wp-block-paragraph">LINEST関数は「リネスト」と読みます。LINear + ESTimate（線形推定）が語源です。</p>



<p class="wp-block-paragraph">LINEST関数は、既存のデータに <strong>y = mx + b</strong> という線形回帰モデルをあてはめ、傾き（m）と切片（b）を返す関数です。mはxが1増えたときにyがいくつ変化するかを表し、bはx=0のときのyの値を意味しています。</p>



<p class="wp-block-paragraph">たとえば広告費と売上の関係を調べたとき、m=2.5と出たら「広告費を1万円増やすごとに売上が2.5万円増える」という関係がわかります。bは広告費ゼロのときのベース売上ですね。</p>



<p class="wp-block-paragraph">LINEST関数は予測値そのものではなく「回帰モデルの中身」を返す関数です。予測値がほしい場合は<a href="https://mashukabu.com/excel-function-howto-use-forecast-linear/">FORECAST.LINEAR関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-trend/">TREND関数</a>と組み合わせて使います。</p>



<h3 class="wp-block-heading"><span id="toc2">SLOPE関数・INTERCEPT関数との違い</span></h3>



<p class="wp-block-paragraph">傾きだけなら<a href="https://mashukabu.com/excel-function-howto-use-slope/">SLOPE関数</a>、切片だけなら<a href="https://mashukabu.com/excel-function-howto-use-intercept/">INTERCEPT関数</a>でも求められます。ただし、これらの関数では回帰モデルの精度（R²やF値）はわかりません。</p>



<p class="wp-block-paragraph">LINEST関数は「傾き・切片・統計情報」をまとめて返せる点が最大の強みです。回帰分析の結果を一括で確認したいときに使ってください。</p>



<h2 class="wp-block-heading"><span id="toc3">LINEST関数の構文と4つの引数</span></h2>



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



<pre class="wp-block-code"><code>=LINEST(既知のy, [既知のx], [定数], [補正])</code></pre>



<p class="wp-block-paragraph">LINEST関数は<strong>配列数式</strong>として動作します。Excel 2021・Microsoft 365では、結果が複数セルに自動展開（スピル）されます。Excel 2019以前は、Ctrl + Shift + Enter での確定が必要です。</p>



<h3 class="wp-block-heading"><span id="toc5">引数の一覧</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>既知のy</td><td>必須</td><td>回帰の対象となるyの値（売上・利用者数など）</td></tr><tr><td>既知のx</td><td>省略可</td><td>yに対応するxの値。省略すると {1, 2, 3, &#8230;} の連番が自動割り当て</td></tr><tr><td>定数</td><td>省略可</td><td>TRUE（既定）: 切片bを計算する / FALSE: bを0に固定する</td></tr><tr><td>補正</td><td>省略可</td><td>FALSE（既定）: 係数のみ返す / TRUE: 統計情報も返す</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">引数①：既知のy（必須）</span></h3>



<p class="wp-block-paragraph">回帰の対象となるyの値を指定します。売上や来客数など、分析したいデータの列です。</p>



<h3 class="wp-block-heading"><span id="toc7">引数②：既知のx（省略可）</span></h3>



<p class="wp-block-paragraph">yに対応するxの値を指定します。年度や月番号、広告費のような説明変数が入ります。</p>



<p class="wp-block-paragraph">省略すると {1, 2, 3, &#8230;} という連番が自動で割り当てられます。時系列データが等間隔に並んでいるなら省略してもOKですよ。</p>



<h3 class="wp-block-heading"><span id="toc8">引数③：定数（省略可）</span></h3>



<p class="wp-block-paragraph">切片bの扱いを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>動作</th><th>回帰モデル</th></tr></thead><tbody><tr><td>TRUE（既定）</td><td>bを計算する</td><td>y = mx + b</td></tr><tr><td>FALSE</td><td>bを0に固定する</td><td>y = mx</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ほとんどの場合はTRUE（または省略）で問題ありません。原点を通る回帰を求めたい特殊なケースでFALSEを使います。</p>



<h3 class="wp-block-heading"><span id="toc9">引数④：補正（省略可）</span></h3>



<p class="wp-block-paragraph">統計情報を追加出力するかどうかを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>動作</th><th>出力サイズ</th></tr></thead><tbody><tr><td>FALSE（既定）</td><td>係数のみ返す</td><td>1行2列（mとb）</td></tr><tr><td>TRUE</td><td>統計情報も返す</td><td>5行2列（係数＋統計量）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">TRUEにすると決定係数R²やF統計量など、モデルの精度を評価するための情報も一緒に得られます。最初はTRUEで出力して、モデルの信頼性を確認するのがおすすめです。</p>



<h2 class="wp-block-heading"><span id="toc10">基本的な使い方（傾きと切片を求める）</span></h2>



<p class="wp-block-paragraph">まずはシンプルな例で、傾きと切片を求めてみましょう。</p>



<p class="wp-block-paragraph">次のサンプルデータを用意してください。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>A列（月）</th><th>B列（売上・万円）</th></tr></thead><tbody><tr><td>2行目</td><td>1</td><td>100</td></tr><tr><td>3行目</td><td>2</td><td>130</td></tr><tr><td>4行目</td><td>3</td><td>155</td></tr><tr><td>5行目</td><td>4</td><td>190</td></tr><tr><td>6行目</td><td>5</td><td>210</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">D2セルに次の数式を入力してください。</p>



<pre class="wp-block-code"><code>=LINEST(B2:B6, A2:A6)</code></pre>



<p class="wp-block-paragraph">D2に傾き（約27）、E2に切片（約78）が返されます。Microsoft 365ではスピルで2つのセルに展開されますよ。</p>



<p class="wp-block-paragraph">この結果は「月が1つ進むごとに売上が約27万円増える」「1ヶ月目の開始時点のベース売上が約78万円」という意味です。回帰式 y = 27x + 78 が得られたことになります。</p>



<p class="wp-block-paragraph"><strong>ここで注意したいポイントがあります。</strong> LINEST関数は傾き→切片の順で「右から左」に値を返します。D2がm（傾き）、E2がb（切片）です。SLOPE関数やINTERCEPT関数と結果を比べて確認してみるとわかりやすいですよ。</p>



<pre class="wp-block-code"><code>=SLOPE(B2:B6, A2:A6)   → D2の値と一致
=INTERCEPT(B2:B6, A2:A6) → E2の値と一致</code></pre>



<h2 class="wp-block-heading"><span id="toc11">補正=TRUEで返される5行2列の統計情報を読み解く</span></h2>



<p class="wp-block-paragraph">LINEST関数の真価は、補正をTRUEにしたときに発揮されます。5行×2列（計10個）の値が返されるのでちょっと多く見えますが、それぞれの意味を整理すれば難しくありません。</p>



<p class="wp-block-paragraph">D2セルに次の数式を入力してください。</p>



<pre class="wp-block-code"><code>=LINEST(B2:B6, A2:A6, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">Microsoft 365ではD2:E6に5行2列の結果がスピルします。Excel 2019以前では、D2:E6を選択した状態で数式を入力し、Ctrl + Shift + Enter で確定してください。</p>



<h3 class="wp-block-heading"><span id="toc12">1行目：傾きm・切片b（回帰式の本体）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D2（m：傾き）</th><th>E2（b：切片）</th></tr></thead><tbody><tr><td>約27</td><td>約78</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">回帰式 y = mx + b の心臓部です。傾き27は「月1つあたり売上が27万円増加」、切片78は「0ヶ月目のベース売上が78万円」を意味します。</p>



<h3 class="wp-block-heading"><span id="toc13">2行目：各係数の標準誤差</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D3（se_m）</th><th>E3（se_b）</th></tr></thead><tbody><tr><td>mの標準誤差</td><td>bの標準誤差</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">係数の「ブレ幅」を示す値です。標準誤差が小さいほど、その係数の推定が安定していることを意味します。</p>



<h3 class="wp-block-heading"><span id="toc14">3行目：決定係数R²とyの標準誤差</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D4（R²）</th><th>E4（se_y）</th></tr></thead><tbody><tr><td>決定係数</td><td>y推定値の標準誤差</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>R²（決定係数）は最重要の指標です。</strong> 0～1の範囲で、1に近いほどモデルがデータにフィットしていることを示します。別途<a href="https://mashukabu.com/excel-function-howto-use-rsq/">RSQ関数</a>で求めることもできますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>R²の範囲</th><th>判断の目安</th></tr></thead><tbody><tr><td>0.95以上</td><td>非常に良好。安心して予測に使える</td></tr><tr><td>0.90～0.95</td><td>良好。実務では十分な精度</td></tr><tr><td>0.70～0.90</td><td>まずまず。予測は参考程度にとどめる</td></tr><tr><td>0.70未満</td><td>当てはまりが弱い。モデルの見直しが必要</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc15">4行目：F統計量と自由度</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D5（F値）</th><th>E5（df）</th></tr></thead><tbody><tr><td>F統計量</td><td>自由度（残差）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">F値が大きいほど「回帰モデルが偶然でなく統計的に意味がある」ことを示します。学術論文でなければ、R²だけ確認すれば実務上は十分ですよ。</p>



<h3 class="wp-block-heading"><span id="toc16">5行目：回帰平方和と残差平方和</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D6（ssreg）</th><th>E6（ssresid）</th></tr></thead><tbody><tr><td>回帰平方和</td><td>残差平方和</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">回帰平方和はモデルが説明できた変動量、残差平方和は説明しきれなかった変動量です。ssreg / (ssreg + ssresid) = R² という関係がありますよ。</p>



<h2 class="wp-block-heading"><span id="toc17">実践的な使い方：LINEST + FORECAST.LINEARで売上予測</span></h2>



<p class="wp-block-paragraph">LINEST関数で回帰モデルの精度を確認し、FORECAST.LINEAR関数で予測値を出す。この2ステップが実務での定番ワークフローです。</p>



<h3 class="wp-block-heading"><span id="toc18">Step1：LINESTでR²を確認する</span></h3>



<p class="wp-block-paragraph">先ほどのサンプルデータを使い、補正=TRUEで統計情報を出力します。</p>



<pre class="wp-block-code"><code>=LINEST(B2:B6, A2:A6, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">3行目左側のR²を確認してください。0.9以上であれば、線形モデルがデータにフィットしているので予測に進めます。</p>



<h3 class="wp-block-heading"><span id="toc19">Step2：FORECAST.LINEARで将来の売上を予測する</span></h3>



<p class="wp-block-paragraph">R²が十分に高ければ、FORECAST.LINEAR関数で予測を出します。8セルに「6」（6ヶ月目）を入力しておき、B8セルに次の数式を入力してください。</p>



<pre class="wp-block-code"><code>=FORECAST.LINEAR(A8, B2:B6, A2:A6)</code></pre>



<p class="wp-block-paragraph">6ヶ月目の予測売上が返されます。FORECAST.LINEAR関数は内部でLINESTと同じ最小二乗法の計算を行い、新しいxに対するy値を直接返してくれますよ。</p>



<p class="wp-block-paragraph">手動で計算したい場合は、LINESTから得た傾きmと切片bを使って次の式でも同じ結果になります。</p>



<pre class="wp-block-code"><code>=D2 * A8 + E2</code></pre>



<p class="wp-block-paragraph">D2がm（傾き）、E2がb（切片）の場合です。FORECAST.LINEAR関数のほうが手軽ですが、式の仕組みを理解するために一度は手計算も試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc20">複数の将来値をまとめて予測する（TREND関数）</span></h3>



<p class="wp-block-paragraph">複数のxに対する予測値を一括で得たい場合は、<a href="https://mashukabu.com/excel-function-howto-use-trend/">TREND関数</a>が便利です。</p>



<p class="wp-block-paragraph">A8セルに「6」、A9セルに「7」、A10セルに「8」と入力しておき、B8セルに次の数式を入力してください。</p>



<pre class="wp-block-code"><code>=TREND(B2:B6, A2:A6, A8:A10)</code></pre>



<p class="wp-block-paragraph">6～8ヶ月目の予測値がスピルで3セルに展開されます。TREND関数はLINESTの線形回帰モデルで予測値をまとめて返してくれるので、複数期間の予測に向いていますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc22">#VALUE!エラー：配列数式の入力ミス</span></h3>



<p class="wp-block-paragraph">Excel 2019以前で Ctrl + Shift + Enter を押さずにEnterだけで確定すると、正しい結果が得られません。補正=TRUEの場合は傾き（m）しか返されず、残りのセルに <code>#VALUE!</code> が出ることがあります。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 出力先セル範囲（補正=TRUEなら5行2列）を選択し、数式を入力してから Ctrl + Shift + Enter で確定してください。数式バーに {=LINEST(&#8230;)} と中かっこが表示されれば成功です。</p>



<p class="wp-block-paragraph">Microsoft 365やExcel 2021なら自動スピルに対応しているので、この問題は起きません。</p>



<h3 class="wp-block-heading"><span id="toc23">#REF!エラー：配列サイズの不一致</span></h3>



<p class="wp-block-paragraph">既知のyと既知のxの配列サイズが一致していないと <code>#REF!</code> エラーが出ます。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: yのデータが5行なら、xも5行に揃えてください。空白セルが混じっていないかも確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc24">#N/A エラー：データが不足している</span></h3>



<p class="wp-block-paragraph">xの値がすべて同じ場合（変動がない場合）、傾きを計算できず <code>#N/A</code> エラーになることがあります。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: xの値に変動があるか確認してください。すべて同じ値では回帰直線を引くことができません。</p>



<p class="wp-block-paragraph">エラーの一覧と対処法は<a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a>も参考にしてくださいね。</p>



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



<p class="wp-block-paragraph">回帰分析に関連する関数は複数あります。迷ったときはこの表を参考にしてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>返すもの</th><th>回帰モデル</th><th>用途</th></tr></thead><tbody><tr><td>LINEST</td><td>傾き・切片＋統計量</td><td>線形（y = mx + b）</td><td>回帰モデルの中身と精度を確認したいとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-slope/">SLOPE</a></td><td>傾きのみ</td><td>線形</td><td>傾きだけ手早く知りたいとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-intercept/">INTERCEPT</a></td><td>切片のみ</td><td>線形</td><td>切片だけ手早く知りたいとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-rsq/">RSQ</a></td><td>決定係数R²のみ</td><td>線形</td><td>モデルの当てはまりだけ確認したいとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-trend/">TREND</a></td><td>予測値</td><td>線形</td><td>線形回帰による予測値を直接得たいとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-logest/">LOGEST</a></td><td>係数＋統計量</td><td>指数（y = b × m^x）</td><td>加速度的に増減するデータの回帰分析</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-growth/">GROWTH</a></td><td>予測値</td><td>指数</td><td>指数回帰による予測値を直接得たいとき</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは2つの軸で整理することです。</p>



<ul class="wp-block-list"><li><strong>知りたいもの</strong>: 回帰係数と統計量 → LINEST / LOGEST、予測値 → TREND / GROWTH、個別の値 → SLOPE / INTERCEPT / RSQ</li><li><strong>データの形状</strong>: 直線的 → LINEST系、カーブ → LOGEST系</li></ul>



<p class="wp-block-paragraph">LINEST関数は「回帰モデルの全体像を確認するための関数」と覚えておけば、他の関数との使い分けで迷うことはありません。</p>



<h2 class="wp-block-heading"><span id="toc26">よくある質問</span></h2>



<p class="wp-block-paragraph"><strong>Q. 複数の説明変数（重回帰）を扱えますか？</strong></p>



<p class="wp-block-paragraph">はい、できます。単回帰では既知のxに1列のデータを渡しますが、重回帰では複数列を渡すだけで対応できます。たとえば広告費（B列）と気温（C列）の2変数で売上を分析したい場合は <code>=LINEST(D2:D10, B2:C10, TRUE, TRUE)</code> のように隣接する2列をxとして指定します。出力は変数の数＋1列に広がり、各変数の偏回帰係数と統計量がまとめて返されます。</p>



<p class="wp-block-paragraph"><strong>Q. Google スプレッドシートでも同じように使えますか？</strong></p>



<p class="wp-block-paragraph">はい、構文・動作はほぼ同じです。スプレッドシート版はスピル（自動展開）が標準対応なので、Ctrl + Shift + Enter は不要です。スプレッドシートでのLINEST関数の詳細は<a href="https://mashukabu.com/spreadsheet-linest-function/">スプレッドシートのLINEST関数の使い方</a>をご覧ください。</p>



<p class="wp-block-paragraph"><strong>Q. Excel 2019・2016などMicrosoft 365以前のバージョンでも使えますか？</strong></p>



<p class="wp-block-paragraph">LINEST関数自体は古いバージョンでも使えますが、補正=TRUEのときは5行×2列の出力範囲をあらかじめ選択した上で Ctrl + Shift + Enter で確定する必要があります。数式バーに <code>{=LINEST(...)}</code> のように中かっこが付いていれば配列数式として入力できています。Microsoft 365・Excel 2021以降ではスピルが使えるため、出力先セルを1つ選ぶだけで自動展開されます。</p>



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



<p class="wp-block-paragraph">ExcelのLINEST関数は、最小二乗法で線形回帰モデル（y = mx + b）の傾き・切片と統計情報を求める関数です。</p>



<p class="wp-block-paragraph">この記事のポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>LINEST関数は「傾きm」と「切片b」を返す。予測値がほしいときはFORECAST.LINEAR関数や<a href="https://mashukabu.com/excel-function-howto-use-trend/">TREND関数</a>を使う</li><li>引数「補正」をTRUEにすると、5行2列の統計情報（R²・F値など）も取得できる</li><li>R²（決定係数）が0.9以上ならモデルの当てはまりが良好。予測に活用できる</li><li>配列数式として入力する（Microsoft 365ではスピル対応）</li><li><a href="https://mashukabu.com/excel-function-howto-use-slope/">SLOPE関数</a>・<a href="https://mashukabu.com/excel-function-howto-use-intercept/">INTERCEPT関数</a>は個別の値を返すだけ。統計情報まで欲しいならLINEST関数を使う</li><li>カーブするデータには<a href="https://mashukabu.com/excel-function-howto-use-logest/">LOGEST関数</a>、直線的なデータにはLINEST関数を使い分ける</li></ul>



<p class="wp-block-paragraph">売上予測や広告効果の分析に、ぜひ活用してみてください。Excel関数の一覧は<a href="https://mashukabu.com/excel-function-alphabetical-order/">こちら</a>から確認できます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-linest/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのLINEST関数の使い方｜統計量一括取得</title>
		<link>https://mashukabu.com/spreadsheet-linest-function/</link>
					<comments>https://mashukabu.com/spreadsheet-linest-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 26 Mar 2026 11:42:24 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[INTERCEPT]]></category>
		<category><![CDATA[LINEST]]></category>
		<category><![CDATA[RSQ]]></category>
		<category><![CDATA[SLOPE]]></category>
		<category><![CDATA[回帰分析]]></category>
		<category><![CDATA[統計関数]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5249</guid>

					<description><![CDATA[スプレッドシートのLINEST関数の使い方を解説します。verbose=TRUEにすると回帰係数・標準誤差・決定係数・F統計量など5種類の統計量を一括取得できます。SLOPE・INTERCEPT関数との違いや、出力表の各行の意味もわかりやすく説明します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「回帰分析で傾きも切片もR²も全部ほしいのに、SLOPE・INTERCEPT・RSQをバラバラに書くのが面倒……」</p>



<p class="wp-block-paragraph">こんなふうに感じたことはありませんか？ 統計関数を1つずつ入力していると、数式が増えて管理も大変ですよね。</p>



<p class="wp-block-paragraph">そんなときに使えるのがスプレッドシートのLINEST関数です。この記事では基本の書き方から統計量の読み方、実務での活用例まで丁寧に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">LINEST関数とは？（SLOPE等の上位互換）</a></li><li><a href="#toc2" tabindex="0">LINEST関数の基本構文と引数</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">verbose=TRUEで取得できる統計量の読み方</a><ol><li><a href="#toc7" tabindex="0">1行目: 傾きと切片</a></li><li><a href="#toc8" tabindex="0">2行目: 標準誤差</a></li><li><a href="#toc9" tabindex="0">3行目: R²と推定標準誤差</a></li><li><a href="#toc10" tabindex="0">4行目: F統計量と自由度</a></li><li><a href="#toc11" tabindex="0">5行目: 回帰平方和と残差平方和</a></li></ol></li><li><a href="#toc12" tabindex="0">SLOPE・INTERCEPT・RSQとの違いと使い分け</a><ol><li><a href="#toc13" tabindex="0">個別関数との対応表</a></li><li><a href="#toc14" tabindex="0">どちらを使うべき？</a></li></ol></li><li><a href="#toc15" tabindex="0">実践例：月次売上データで回帰分析</a><ol><li><a href="#toc16" tabindex="0">サンプルデータ</a></li><li><a href="#toc17" tabindex="0">統計量フルセットを取得する</a></li><li><a href="#toc18" tabindex="0">結果を読み解く</a></li><li><a href="#toc19" tabindex="0">特定の値だけ取り出す</a></li></ol></li><li><a href="#toc20" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc21" tabindex="0">#REF! エラー</a></li><li><a href="#toc22" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc23" tabindex="0">結果が1行しか出ない</a></li><li><a href="#toc24" tabindex="0">切片を0固定にしたときのR²に注意</a></li></ol></li><li><a href="#toc25" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">LINEST関数とは？（SLOPE等の上位互換）</span></h2>



<p class="wp-block-paragraph">LINEST関数（読み方: リネスト関数）は、線形回帰の結果を<strong>配列でまとめて返す</strong>統計関数です。「LINEST」は英語の「<strong>LIN</strong>ear <strong>EST</strong>imation（線形推定）」の略が由来です。</p>



<p class="wp-block-paragraph">線形回帰とは、散布図に描かれた点に最もフィットする直線（<code>y = mx + b</code>）を求める手法のことです。LINEST関数はこの直線の傾き（m）や切片（b）だけでなく、R²やF統計量などの統計指標も一括で返してくれます。</p>



<p class="wp-block-paragraph">つまり、次の関数を1つずつ入力する必要がなくなります。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-slope-function/">SLOPE関数</a>（傾き）</li><li><a href="https://mashukabu.com/spreadsheet-intercept-function/">INTERCEPT関数</a>（切片）</li><li><a href="https://mashukabu.com/spreadsheet-rsq-function/">RSQ関数</a>（決定係数R²）</li><li><a href="https://mashukabu.com/spreadsheet-steyx-function/">STEYX関数</a>（推定標準誤差）</li></ul>



<p class="wp-block-paragraph">LINEST関数1つで、これら4つの関数の結果を含む統計量をまとめて取得できます。「統計量をフルセットでほしい」ときの上位互換として覚えておくと便利ですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>LINEST関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数がありますが、ExcelではCtrl+Shift+Enterの配列入力が必要です。Googleスプレッドシートでは通常のEnterで自動的にスピル（隣接セルに展開）されます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">LINEST関数の基本構文と引数</span></h2>



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



<pre class="wp-block-code"><code>=LINEST(既知のy, [既知のx], [切片計算], [統計情報])</code></pre>



<p class="wp-block-paragraph">カッコの中に、従属変数のデータと、必要に応じて独立変数のデータ・オプションを指定します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>既定値</th><th>説明</th></tr></thead><tbody><tr><td>既知のy</td><td>必須</td><td>—</td><td>従属変数のデータ範囲（例: 売上データ）</td></tr><tr><td>既知のx</td><td>任意</td><td>{1,2,3,&#8230;}</td><td>独立変数のデータ範囲（例: 月番号）。省略すると連番が使われる</td></tr><tr><td>切片計算</td><td>任意</td><td>TRUE</td><td>TRUE=切片を計算、FALSE=切片を0に固定</td></tr><tr><td>統計情報（verbose）</td><td>任意</td><td>FALSE</td><td>TRUE=統計量フル出力（5行）、FALSE=傾きと切片のみ（1行）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">必須の引数は「既知のy」だけです。ただし、実務では「既知のx」も指定するのが一般的です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>4番目の引数「統計情報」をTRUEにすると、5行分の統計量マトリックスが出力されます。回帰分析をしっかり行うときはTRUEがおすすめです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc5">最小構成と推奨構成</span></h3>



<pre class="wp-block-code"><code>=LINEST(B2:B13)</code></pre>



<p class="wp-block-paragraph">これが最小構成です。傾きと切片だけが1行×2列で返ります。</p>



<pre class="wp-block-code"><code>=LINEST(B2:B13, A2:A13, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">こちらが推奨構成です。統計量フルセットが5行×2列で返ります。回帰分析に使うならこの書き方を基本にしてみてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>WARNING</strong></p><p>4番目の引数をTRUEにしたとき、結果は5行×2列に展開されます。出力先の下方向に5行・右方向に2列分の空きスペースを確保してください。既にデータがあると <code>#REF!</code> エラーになります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">verbose=TRUEで取得できる統計量の読み方</span></h2>



<p class="wp-block-paragraph">統計情報（verbose）をTRUEにすると、5行×2列の統計量マトリックスが返ります。単回帰（独立変数が1つ）の場合のレイアウトは次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>行</th><th>列1</th><th>列2</th></tr></thead><tbody><tr><td>1行目</td><td>傾き（m）</td><td>切片（b）</td></tr><tr><td>2行目</td><td>傾きの標準誤差</td><td>切片の標準誤差</td></tr><tr><td>3行目</td><td>決定係数（R²）</td><td>推定標準誤差（Syx）</td></tr><tr><td>4行目</td><td>F統計量</td><td>自由度（df）</td></tr><tr><td>5行目</td><td>回帰平方和（SSR）</td><td>残差平方和（SSE）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">それぞれの意味を順番に見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">1行目: 傾きと切片</span></h3>



<p class="wp-block-paragraph">回帰直線 <code>y = mx + b</code> のmとbにあたる値です。傾きは「xが1増えるとyがどれだけ変わるか」を示します。切片は「x=0のときのyの値」です。</p>



<h3 class="wp-block-heading"><span id="toc8">2行目: 標準誤差</span></h3>



<p class="wp-block-paragraph">傾きと切片がどれくらい信頼できるかを表す指標です。値が小さいほど推定の精度が高いことを意味します。「標準誤差 < 傾き」であれば、その傾きは統計的にある程度信頼できると判断できます。</p>



<h3 class="wp-block-heading"><span id="toc9">3行目: R²と推定標準誤差</span></h3>



<p class="wp-block-paragraph">R²（決定係数）は、データのばらつきのうち回帰直線で説明できる割合です。0〜1の範囲をとり、1に近いほどモデルの当てはまりがよいことを示します。推定標準誤差は実際の値と予測値のずれの大きさです。</p>



<h3 class="wp-block-heading"><span id="toc10">4行目: F統計量と自由度</span></h3>



<p class="wp-block-paragraph">F統計量は「回帰モデル全体が意味のあるものか」を検定する指標です。値が大きいほど統計的に有意であることを示します。自由度は回帰の計算に使われたデータ点数に関連する値です。</p>



<h3 class="wp-block-heading"><span id="toc11">5行目: 回帰平方和と残差平方和</span></h3>



<p class="wp-block-paragraph">回帰平方和（SSR）は回帰直線で説明できたばらつき、残差平方和（SSE）は説明できなかったばらつきです。R²は <code>SSR ÷ (SSR + SSE)</code> で計算されます。</p>



<p class="wp-block-paragraph">ちょっと項目が多く見えますが、実務でまず注目すべきは<strong>1行目（傾き・切片）と3行目（R²）</strong>の3つです。ここを押さえておけば十分活用できますよ。</p>



<h2 class="wp-block-heading"><span id="toc12">SLOPE・INTERCEPT・RSQとの違いと使い分け</span></h2>



<p class="wp-block-paragraph">LINEST関数の各値は、個別の統計関数と対応しています。INDEXを使えば特定の値だけ取り出すことも可能です。</p>



<h3 class="wp-block-heading"><span id="toc13">個別関数との対応表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>取得したい値</th><th>個別関数</th><th>LINESTでの取り出し方</th></tr></thead><tbody><tr><td>傾き</td><td><code>=SLOPE(y, x)</code></td><td><code>=INDEX(LINEST(y, x, TRUE, TRUE), 1, 1)</code></td></tr><tr><td>切片</td><td><code>=INTERCEPT(y, x)</code></td><td><code>=INDEX(LINEST(y, x, TRUE, TRUE), 1, 2)</code></td></tr><tr><td>決定係数R²</td><td><code>=RSQ(y, x)</code></td><td><code>=INDEX(LINEST(y, x, TRUE, TRUE), 3, 1)</code></td></tr><tr><td>推定標準誤差</td><td><code>=STEYX(y, x)</code></td><td><code>=INDEX(LINEST(y, x, TRUE, TRUE), 3, 2)</code></td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc14">どちらを使うべき？</span></h3>



<p class="wp-block-paragraph">結論として、次のように使い分けるのがおすすめです。</p>



<ul class="wp-block-list"><li><strong>傾きだけ・切片だけが必要</strong> → SLOPE関数やINTERCEPT関数を単体で使う方がシンプル</li><li><strong>R²や標準誤差も含めて総合的に見たい</strong> → LINEST関数1つで一括取得する方が効率的</li><li><strong>予測値を求めたい</strong> → <a href="https://mashukabu.com/spreadsheet-forecast-function/">FORECAST関数</a>や<a href="https://mashukabu.com/spreadsheet-trend-function/">TREND関数</a>を使う</li></ul>



<p class="wp-block-paragraph">個別関数は「ピンポイントで1つの値がほしいとき」に向いています。LINEST関数は「回帰分析レポートを作るとき」のように複数の統計量を並べたい場面で活躍します。用途に合わせて選んでみてください。</p>



<h2 class="wp-block-heading"><span id="toc15">実践例：月次売上データで回帰分析</span></h2>



<p class="wp-block-paragraph">ここでは、12か月分の売上データを使ってLINEST関数を実際に動かしてみましょう。</p>



<h3 class="wp-block-heading"><span id="toc16">サンプルデータ</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>月（A列）</th><th>売上（B列）</th></tr></thead><tbody><tr><td>1</td><td>120</td></tr><tr><td>2</td><td>135</td></tr><tr><td>3</td><td>148</td></tr><tr><td>4</td><td>155</td></tr><tr><td>5</td><td>170</td></tr><tr><td>6</td><td>180</td></tr><tr><td>7</td><td>192</td></tr><tr><td>8</td><td>200</td></tr><tr><td>9</td><td>215</td></tr><tr><td>10</td><td>225</td></tr><tr><td>11</td><td>238</td></tr><tr><td>12</td><td>250</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">A2:A13に月番号、B2:B13に売上が入っている想定です。</p>



<h3 class="wp-block-heading"><span id="toc17">統計量フルセットを取得する</span></h3>



<p class="wp-block-paragraph">D2セルに次の数式を入力します。</p>



<pre class="wp-block-code"><code>=LINEST(B2:B13, A2:A13, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">D2:E6の範囲に5行×2列の結果が展開されます。このデータの場合、おおよそ次のような値が返ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>行</th><th>D列（列1）</th><th>E列（列2）</th></tr></thead><tbody><tr><td>1行目</td><td>11.65（傾き）</td><td>110.45（切片）</td></tr><tr><td>2行目</td><td>0.29（傾きの標準誤差）</td><td>2.15（切片の標準誤差）</td></tr><tr><td>3行目</td><td>0.993（R²）</td><td>2.71（推定標準誤差）</td></tr><tr><td>4行目</td><td>1581.5（F統計量）</td><td>10（自由度）</td></tr><tr><td>5行目</td><td>11612.3（回帰平方和）</td><td>73.5（残差平方和）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">結果を読み解く</span></h3>



<ul class="wp-block-list"><li><strong>傾き11.65</strong>: 1か月あたり約11.65万円ずつ売上が増加</li><li><strong>切片110.45</strong>: 月=0の理論値。直線の始点にあたる</li><li><strong>R²=0.993</strong>: データの99.3%を直線で説明できており、非常に当てはまりがよい</li></ul>



<p class="wp-block-paragraph">R²が0.99以上なので、この売上データは月数にほぼ比例して増えていることがわかります。</p>



<h3 class="wp-block-heading"><span id="toc19">特定の値だけ取り出す</span></h3>



<p class="wp-block-paragraph">傾きだけをセルに表示したい場合はINDEXと組み合わせます。</p>



<pre class="wp-block-code"><code>=INDEX(LINEST(B2:B13, A2:A13, TRUE, TRUE), 1, 1)</code></pre>



<p class="wp-block-paragraph">INDEXの第2引数に行番号、第3引数に列番号を指定します。5行×2列のうち任意の値を1つだけ取り出せますよ。レポートの特定セルに値を埋め込みたいときに便利です。</p>



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



<p class="wp-block-paragraph">LINEST関数で発生しやすいエラーと、その解決方法をまとめます。</p>



<h3 class="wp-block-heading"><span id="toc21">#REF! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因1: yとxのデータ数が一致していない</strong></p>



<p class="wp-block-paragraph">既知のyと既知のxの行数（データの個数）が異なると <code>#REF!</code> になります。</p>



<pre class="wp-block-code"><code>=LINEST(B2:B13, A2:A10, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">この例ではyが12行、xが9行でずれています。範囲を揃えてください。</p>



<p class="wp-block-paragraph"><strong>原因2: 出力先にスペースが足りない</strong></p>



<p class="wp-block-paragraph">4番目の引数をTRUEにした場合、5行×2列分の空きが必要です。出力先の下方向や右方向に既存データがあると <code>#REF!</code> になります。空きスペースを確保してから再入力してください。</p>



<h3 class="wp-block-heading"><span id="toc22">#VALUE! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因: データ範囲に空白セルや文字列が混入している</strong></p>



<p class="wp-block-paragraph">LINEST関数は数値データを前提としています。途中に空白や「N/A」のような文字列があるとエラーになります。</p>



<pre class="wp-block-code"><code>=LINEST(B2:B13, A2:A13, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">B2:B13の中に空白や文字列がないか確認しましょう。空白セルを0で埋めるか、該当行を除外してデータ範囲を調整してください。</p>



<h3 class="wp-block-heading"><span id="toc23">結果が1行しか出ない</span></h3>



<p class="wp-block-paragraph">4番目の引数（統計情報）をFALSEにしている、または省略しているケースです。統計量フルセットがほしい場合は、必ず4番目の引数をTRUEに設定してみてください。</p>



<pre class="wp-block-code"><code>=LINEST(B2:B13, A2:A13, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">最後の引数がTRUEになっているか確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc24">切片を0固定にしたときのR²に注意</span></h3>



<p class="wp-block-paragraph">3番目の引数（切片計算）をFALSEにすると、切片が0に固定されます。この場合、R²の計算式が通常と変わるため、TRUEのときのR²とは直接比較できません。</p>



<p class="wp-block-paragraph">切片固定は「物理的に原点を通るはずのモデル」でのみ使うのがよいです。一般的な業務データでは、切片計算=TRUE（既定値）のまま使うのが安全ですよ。</p>



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



<p class="wp-block-paragraph">スプレッドシートのLINEST関数について、基本の使い方から統計量の読み方、エラー対処法まで解説しました。ポイントを振り返っておきましょう。</p>



<ul class="wp-block-list"><li>LINEST関数は<strong>線形回帰の統計量を一括取得</strong>できる関数</li><li>4番目の引数をTRUEにすると、5行×2列の統計量マトリックスが返る</li><li>1行目（傾き・切片）と3行目（R²）を押さえるのが実務の基本</li><li>傾きだけなど単一の値がほしいときは<a href="https://mashukabu.com/spreadsheet-slope-function/">SLOPE関数</a>や<a href="https://mashukabu.com/spreadsheet-rsq-function/">RSQ関数</a>が手軽</li><li>予測値を求めたいときは<a href="https://mashukabu.com/spreadsheet-forecast-function/">FORECAST関数</a>や<a href="https://mashukabu.com/spreadsheet-trend-function/">TREND関数</a>と組み合わせる</li></ul>



<p class="wp-block-paragraph">回帰分析のレポートを作る場面では、LINEST関数1つで必要な数値が揃うのでとても効率的です。ぜひ活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-linest-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのARRAYFORMULA関数の使い方｜範囲に一括適用</title>
		<link>https://mashukabu.com/spreadsheet-arrayformula-function/</link>
					<comments>https://mashukabu.com/spreadsheet-arrayformula-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:38:29 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ARRAYFORMULA]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[一括適用]]></category>
		<category><![CDATA[自動化]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4913</guid>

					<description><![CDATA[GoogleスプレッドシートのARRAYFORMULA関数の使い方を基本から解説。1セルに数式を入れるだけで列全体に自動適用できる仕組みや、IF・SUMIF・COUNTIFとの組み合わせ、よくあるエラーの対処法を紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「この数式、100行分コピーしなきゃ&#8230;」。スプレッドシートで同じ数式を何十行もドラッグしてコピーした経験、ありませんか？</p>



<p class="wp-block-paragraph">行が増えるたびにコピーし直す手間もかかります。コピーし忘れて計算が抜ける事故も起きがちです。</p>



<p class="wp-block-paragraph">そんな悩みを一発で解決するのが <strong>ARRAYFORMULA関数</strong> です。1つのセルに数式を入れるだけで、列全体に自動で適用してくれます。</p>



<p class="wp-block-paragraph">この記事では、基本の書き方からIF・SUMIFとの組み合わせまで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ARRAYFORMULA関数とは？</a></li><li><a href="#toc2" tabindex="0">ARRAYFORMULA関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">ARRAYFORMULA関数の基本的な使い方</a></li><li><a href="#toc6" tabindex="0">ARRAYFORMULA関数の実践的な使い方・応用例</a><ol><li><a href="#toc7" tabindex="0">IF関数と組み合わせて空白行を処理する</a></li><li><a href="#toc8" tabindex="0">COUNTIF・SUMIFと組み合わせて集計する</a></li><li><a href="#toc9" tabindex="0">文字列の結合を一括で行う</a></li><li><a href="#toc10" tabindex="0">LEN関数で文字数を一括チェックする</a></li></ol></li><li><a href="#toc11" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc12" tabindex="0">FILTER・QUERYとの違い・使い分け</a></li><li><a href="#toc13" tabindex="0">まとめ</a><ol><li><a href="#toc14" tabindex="0">この記事を書いた人</a></li><li><a href="#toc15" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ARRAYFORMULA関数とは？</span></h2>



<p class="wp-block-paragraph">ARRAYFORMULA関数（アレイフォーミュラ関数）は、1つの数式を範囲全体に一括で適用する <strong>Googleスプレッドシート独自の関数</strong> です。</p>



<p class="wp-block-paragraph">英語の「array（配列）」と「formula（数式）」を組み合わせた名前で、「配列数式」とも呼ばれます。</p>



<p class="wp-block-paragraph">通常、数式は1つのセルにしか効きません。たとえば <code>=A2*B2</code> はそのセルだけの計算です。</p>



<p class="wp-block-paragraph">ARRAYFORMULA関数を使うと、この計算を一気に下の行すべてに展開できます。数式のコピーが不要になるのが最大のメリットです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ARRAYFORMULA関数はGoogleスプレッドシート独自の関数です。Excelには同じ名前の関数はありません。Excelで同様の処理をするには、Microsoft 365の「スピル」機能や <code>Ctrl+Shift+Enter</code> の配列数式を使います。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">ARRAYFORMULA関数の書き方（構文と引数）</span></h2>



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



<pre class="wp-block-code"><code>=ARRAYFORMULA(配列数式)</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>配列数式</td><td>必須</td><td>範囲を使った数式や式（例: <code>A2:A100*B2:B100</code>）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは <strong>セル参照を「範囲」に書き換える</strong> ことです。</p>



<p class="wp-block-paragraph">通常の数式 <code>=A2<em>B2</code> を範囲に変えて <code>=ARRAYFORMULA(A2:A100</em>B2:B100)</code> と書きます。</p>



<p class="wp-block-paragraph">これだけで、A2<em>B2、A3</em>B3、A4*B4&#8230;と全行の計算結果が自動で展開されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ARRAYFORMULA関数を入力するショートカットがあります。数式を入力した状態で <code>Ctrl+Shift+Enter</code>（Macは <code>Cmd+Shift+Enter</code>）を押すと、自動で <code>ARRAYFORMULA()</code> が追加されます。</p></blockquote>



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



<p class="wp-block-paragraph">ここでは、次のような売上データを使って説明します。</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>2行目</td><td>ノート</td><td>200</td><td>5</td></tr><tr><td>3行目</td><td>ペン</td><td>150</td><td>10</td></tr><tr><td>4行目</td><td>消しゴム</td><td>80</td><td>3</td></tr><tr><td>5行目</td><td>ファイル</td><td>300</td><td>7</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>やりたいこと</strong>: D列に「単価 x 数量」の金額を一括で計算する。</p>



<p class="wp-block-paragraph">通常なら D2 に <code>=B2*C2</code> と入力し、D5 までドラッグコピーしますよね。</p>



<p class="wp-block-paragraph">ARRAYFORMULAなら、<strong>D2 に1つだけ数式を入れれば完了</strong>です。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(B2:B5*C2:C5)</code></pre>



<p class="wp-block-paragraph">D2からD5まで、すべての行に計算結果が自動で表示されます。</p>



<p class="wp-block-paragraph"><strong>ここがポイントです</strong>。数式が入っているのはD2セルだけです。D3〜D5には数式がありません。それなのに、すべての行に結果が出ています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>範囲の終わりを <code>B2:B</code> のように列だけにすると、データが増えても自動で対応します。空の行には <code>0</code> が表示されますが、後述のIF関数との組み合わせで解決できます。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc7">IF関数と組み合わせて空白行を処理する</span></h3>



<p class="wp-block-paragraph">ARRAYFORMULA関数で範囲を広めに取ると、データがない行にも <code>0</code> や不要な値が表示されます。</p>



<p class="wp-block-paragraph">これを防ぐには、<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(B2:B=&quot;&quot;, &quot;&quot;, B2:B*C2:C))</code></pre>



<p class="wp-block-paragraph">この数式は「B列が空白なら空白を返し、データがあれば計算する」という意味です。これで空行には何も表示されません。</p>



<p class="wp-block-paragraph"><strong>IF+ARRAYFORMULAは最も使用頻度の高い組み合わせ</strong>です。ぜひセットで覚えてください。</p>



<h3 class="wp-block-heading"><span id="toc8">COUNTIF・SUMIFと組み合わせて集計する</span></h3>



<p class="wp-block-paragraph">ARRAYFORMULA関数は、<a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数</a>や<a href="https://mashukabu.com/spreadsheet-sumif-function/">SUMIF関数</a>とも組み合わせられます。</p>



<p class="wp-block-paragraph">たとえば、各商品の出現回数を一括で数えたい場合はこう書きます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(COUNTIF(A2:A, A2:A))</code></pre>



<p class="wp-block-paragraph">A列のすべての値に対して、同じ値が何回出てくるかを一括で集計します。</p>



<p class="wp-block-paragraph">SUMIF関数と組み合わせれば、カテゴリ別の合計金額を一括で算出できます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(SUMIF(A2:A, E2:E, D2:D))</code></pre>



<p class="wp-block-paragraph">E列にカテゴリ一覧を用意しておけば、各カテゴリの合計がまとめて出力されます。</p>



<h3 class="wp-block-heading"><span id="toc9">文字列の結合を一括で行う</span></h3>



<p class="wp-block-paragraph">名前の列（姓と名）を結合したいとき、通常は1行ずつ <code>=A2&" "&B2</code> と書きます。</p>



<p class="wp-block-paragraph">ARRAYFORMULAなら一発です。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(A2:A&amp;&quot; &quot;&amp;B2:B)</code></pre>



<p class="wp-block-paragraph">列全体の文字列結合が1つの数式で完了します。</p>



<h3 class="wp-block-heading"><span id="toc10">LEN関数で文字数を一括チェックする</span></h3>



<p class="wp-block-paragraph">入力データの文字数を一括で確認したいときにも使えます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IF(A2:A=&quot;&quot;, &quot;&quot;, LEN(A2:A)))</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-len-function/">LEN関数</a>をARRAYFORMULAで展開すれば、すべてのセルの文字数を一括で表示できます。空白行にはIF関数で空文字を返しています。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー / 症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#REF!</code></td><td>出力先のセルにデータがある（展開先がふさがっている）</td><td>出力先の下方向を空けるか、出力位置を変更する</td></tr><tr><td><code>#N/A</code></td><td>VLOOKUP等と組み合わせたとき検索値が見つからない</td><td>IFERRORで囲む: <code>=ARRAYFORMULA(IFERROR(VLOOKUP(...), ""))</code></td></tr><tr><td><code>#VALUE!</code></td><td>ARRAYFORMULAに対応していない関数を使った</td><td>対応関数かどうかを確認する（後述）</td></tr><tr><td>空白行に <code>0</code> が表示される</td><td>空のセルに対しても計算が実行されている</td><td><code>IF(条件="","",計算)</code> で空白行を除外する</td></tr><tr><td>結果が1行分しか出ない</td><td>セル参照が単一セル（A2）のまま</td><td>範囲参照（A2:A）に書き換える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に注意したいのが <strong>「結果が1行分しか出ない」</strong> パターンです。</p>



<p class="wp-block-paragraph">ARRAYFORMULAを付けても範囲を指定していなければ効果がありません。<code>=ARRAYFORMULA(A2<em>B2)</code> ではなく <code>=ARRAYFORMULA(A2:A</em>B2:B)</code> のように範囲にしてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>すべての関数がARRAYFORMULAに対応しているわけではありません。AND関数・OR関数・QUERY関数などは非対応です。代わりに <code>*</code>（AND相当）や <code>+</code>（OR相当）の演算子を使います。AND・OR関数の代替については <a href="https://mashukabu.com/spreadsheet-and-function/">AND関数の使い方</a> を参考にしてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc12">FILTER・QUERYとの違い・使い分け</span></h2>



<p class="wp-block-paragraph">スプレッドシートには、ARRAYFORMULAの他にもデータを一括処理する関数があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>ARRAYFORMULA</th><th>FILTER関数</th><th>QUERY関数</th></tr></thead><tbody><tr><td>主な用途</td><td>既存の関数を全行に一括適用</td><td>条件に一致する行の抽出</td><td>抽出+集計+並べ替えを一括</td></tr><tr><td>動作イメージ</td><td>「列ごとの計算」を自動化</td><td>「行の絞り込み」を自動化</td><td>SQL風にデータを操作</td></tr><tr><td>構文の難易度</td><td>やさしい</td><td>やさしい</td><td>やや難（SQL風の構文）</td></tr><tr><td>向いている場面</td><td>列の計算・変換を一括で</td><td>条件でデータを抽出</td><td>複雑な集計レポート</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>ざっくりまとめると</strong>:</p>



<ul class="wp-block-list"><li><strong>「列の計算を全行に適用したい」</strong> → ARRAYFORMULA</li><li><strong>「条件に合う行を取り出したい」</strong> → <a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a></li><li><strong>「集計やグループ化もしたい」</strong> → QUERY関数</li></ul>



<p class="wp-block-paragraph">ARRAYFORMULAは「計算の自動化」、FILTERは「抽出の自動化」と覚えるとわかりやすいです。</p>



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



<p class="wp-block-paragraph">この記事では、GoogleスプレッドシートのARRAYFORMULA関数の使い方を解説しました。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=ARRAYFORMULA(範囲を使った数式)</code> で列全体に一括適用</li><li><strong>最大のメリット</strong>: 数式のコピーが不要。1セルだけで全行を処理</li><li><strong>IF関数との組み合わせ</strong>: 空白行の <code>0</code> 表示を防ぐ定番テクニック</li><li><strong>COUNTIF・SUMIFとも連携</strong>: 集計処理も一括で実行可能</li><li><strong>エラー対策</strong>: 範囲参照（A2:A）にすることと、空白行のIF処理がポイント</li></ul>



<p class="wp-block-paragraph">ARRAYFORMULA関数はGoogleスプレッドシートならではの便利な関数です。「数式を何十行もコピーしている」という方は、ぜひ試してみてください！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc14">この記事を書いた人</span></h3>



<p class="wp-block-paragraph">biz-tactics編集部。事務職の現場で本当に使えるExcel・スプレッドシート・AIの技を発信しています。</p>



<h3 class="wp-block-heading"><span id="toc15">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方｜条件分岐の基本から応用まで</a></li><li><a href="https://mashukabu.com/spreadsheet-sumif-function/">スプレッドシートのSUMIF関数の使い方｜条件付き合計の基本</a></li><li><a href="https://mashukabu.com/spreadsheet-countif-function/">スプレッドシートのCOUNTIF関数の使い方｜条件に合うセルを数える</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方｜条件抽出を自動化する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-len-function/">スプレッドシートのLEN関数の使い方｜文字数を数える</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-arrayformula-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのLOGEST関数の使い方｜指数回帰の係数と売上予測を解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-logest/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-logest/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 19 May 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[GROWTH関数]]></category>
		<category><![CDATA[LOGEST関数]]></category>
		<category><![CDATA[売上予測]]></category>
		<category><![CDATA[指数回帰]]></category>
		<category><![CDATA[統計関数]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2757</guid>

					<description><![CDATA[ExcelのLOGEST関数の使い方を初心者向けに解説。補正=TRUEで返される5行2列の出力の各セルの意味、GROWTH関数と組み合わせた売上予測2ステップワークフロー、LINEST・TREND・GROWTHとの4関数比較表まで丁寧に説明します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「売上が毎年加速して伸びているけど、この成長カーブをExcelで数式にできないかな？」と感じたことはありませんか。右肩上がりのデータを直線で近似すると、実態とズレた予測になってしまいますよね。</p>



<p class="wp-block-paragraph">ExcelのLOGEST関数を使えば、指数回帰（しすうかいき）の係数をかんたんに求められます。基本構文・引数の意味・統計情報の読み解き方を解説します。GROWTH関数を組み合わせた売上予測の手順まで、まるごと説明しますよ。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">LOGEST関数とは？どんなときに使う関数か</a><ol><li><a href="#toc2" tabindex="0">線形回帰と指数回帰の違い（LINEST関数との対比）</a></li><li><a href="#toc3" tabindex="0">指数成長データの見分け方（グラフで判断するコツ）</a></li></ol></li><li><a href="#toc4" tabindex="0">LOGEST関数の構文と4つの引数</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数①：既知のy（必須）</a></li><li><a href="#toc7" tabindex="0">引数②：既知のx（省略可）</a></li><li><a href="#toc8" tabindex="0">引数③：定数（省略可）</a></li><li><a href="#toc9" tabindex="0">引数④：補正（省略可）</a></li></ol></li><li><a href="#toc10" tabindex="0">補正=TRUEで返される5行2列の出力を読み解く</a><ol><li><a href="#toc11" tabindex="0">1行目：係数m・定数b（回帰式の本体）</a></li><li><a href="#toc12" tabindex="0">2行目：各係数の標準誤差</a></li><li><a href="#toc13" tabindex="0">3行目：決定係数R²とyの標準誤差</a></li><li><a href="#toc14" tabindex="0">4行目：F統計量と自由度</a></li><li><a href="#toc15" tabindex="0">5行目：回帰平方和と残差平方和</a></li></ol></li><li><a href="#toc16" tabindex="0">実務で使う！LOGEST→GROWTHの2ステップ売上予測</a><ol><li><a href="#toc17" tabindex="0">Step1：LOGESTで指数回帰の係数を取得する</a></li><li><a href="#toc18" tabindex="0">Step2：GROWTHで将来の売上予測値を算出する</a></li><li><a href="#toc19" tabindex="0">予測精度の確認方法（R²の見方）</a></li></ol></li><li><a href="#toc20" tabindex="0">LOGEST・GROWTH・LINEST・TREND 4関数の使い分け比較表</a><ol><li><a href="#toc21" tabindex="0">複数のX変数を使う指数重回帰（LOGEST多変量版）</a></li><li><a href="#toc22" tabindex="0">定数=FALSEにするとどうなる？原点通過モデルの使いどころ</a></li></ol></li><li><a href="#toc23" tabindex="0">よくあるエラーと対処方法</a><ol><li><a href="#toc24" tabindex="0">配列数式の入力ミス（#VALUE!エラー）</a></li><li><a href="#toc25" tabindex="0">データが指数曲線に合わない場合</a></li><li><a href="#toc26" tabindex="0">Googleスプレッドシートで使うLOGEST関数｜ExcelとSheetsの互換性と違い</a></li><li><a href="#toc27" tabindex="0">LOGEST vs FORECAST.ETS｜売上予測で迷ったときの選択基準</a></li></ol></li><li><a href="#toc28" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">LOGEST関数とは？どんなときに使う関数か</span></h2>



<p class="wp-block-paragraph">LOGEST関数は「ログエスト」と読みます。LOGarithmic + ESTimate（対数推定）が語源です。</p>



<p class="wp-block-paragraph">LOGEST関数は、既存のデータに <strong>y = b × m^x</strong> という指数回帰モデルをあてはめ、係数（mとb）を返す関数です。mは成長率（倍率）、bは初期値を表しています。</p>



<p class="wp-block-paragraph">たとえば、mが1.15と出たら「毎期15%ずつ成長している」とわかります。0.85なら「毎期15%ずつ減少」です。m=1なら変化なしを意味しますよ。</p>



<p class="wp-block-paragraph">LOGEST関数は予測値そのものではなく「モデルの中身」を返す関数です。予測値がほしい場合はGROWTH関数と組み合わせて使います。</p>



<h3 class="wp-block-heading"><span id="toc2">線形回帰と指数回帰の違い（LINEST関数との対比）</span></h3>



<p class="wp-block-paragraph">回帰分析には大きく分けて2種類あります。</p>



<ul class="wp-block-list"><li><strong>線形回帰（LINEST関数）</strong>: y = a + bx のモデル。データが一定ペースで増減するときに使う</li><li><strong>指数回帰（LOGEST関数）</strong>: y = b × m^x のモデル。データが加速度的に増減するときに使う</li></ul>



<p class="wp-block-paragraph">LOGEST関数は内部でデータを対数変換します。log(y) = log(b) + x × log(m) の形に変換し、LINESTと同等の線形回帰を実行しています。つまりLINESTの「指数バージョン」というイメージですね。</p>



<p class="wp-block-paragraph">直線で近似できるデータにはLINEST関数、カーブを描いて加速するデータにはLOGEST関数と使い分けてください。</p>



<h3 class="wp-block-heading"><span id="toc3">指数成長データの見分け方（グラフで判断するコツ）</span></h3>



<p class="wp-block-paragraph">データが指数成長かどうか迷ったときは、次の方法で確認できます。</p>



<ol class="wp-block-list"><li>データを散布図にして、直線ではなくカーブを描いているかを確認する</li><li>データの対数（LN関数）をとって散布図を作る。直線に近くなれば指数回帰が適している</li></ol>



<p class="wp-block-paragraph">たとえば売上データをLN関数で変換したあとのグラフがきれいに直線に並んでいたら、LOGEST関数を使うサインです。逆に、そのままのデータが直線的ならLINEST関数のほうが適していますよ。</p>



<h2 class="wp-block-heading"><span id="toc4">LOGEST関数の構文と4つの引数</span></h2>



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



<pre class="wp-block-code"><code>=LOGEST(既知のy, [既知のx], [定数], [補正])</code></pre>



<p class="wp-block-paragraph">LOGEST関数は<strong>配列数式</strong>として動作します。Excel 2021・Microsoft 365では、結果が複数セルに自動展開（スピル）されます。Excel 2019以前は、Ctrl + Shift + Enter での確定が必要です。</p>



<h3 class="wp-block-heading"><span id="toc6">引数①：既知のy（必須）</span></h3>



<p class="wp-block-paragraph">回帰の対象となるyの値を指定します。売上や利用者数など、予測したいデータ列のことです。</p>



<p class="wp-block-paragraph"><strong>注意点</strong>: yに0や負の値が含まれていると <code>#NUM!</code> エラーになります。LOGEST関数は内部で対数計算を行うため、正の数のみ受け付けます。</p>



<h3 class="wp-block-heading"><span id="toc7">引数②：既知のx（省略可）</span></h3>



<p class="wp-block-paragraph">yに対応するxの値を指定します。年度や月番号などの時間軸が一般的です。</p>



<p class="wp-block-paragraph">省略すると {1, 2, 3, &#8230;} という連番が自動で割り当てられます。データが等間隔に並んでいるなら省略してもOKですよ。</p>



<h3 class="wp-block-heading"><span id="toc8">引数③：定数（省略可）</span></h3>



<p class="wp-block-paragraph">初期値bの扱いを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>動作</th><th>回帰モデル</th></tr></thead><tbody><tr><td>TRUE（既定）</td><td>bを計算する</td><td>y = b × m^x</td></tr><tr><td>FALSE</td><td>bを1に固定する</td><td>y = m^x</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ほとんどの場合はTRUE（または省略）で問題ありません。原点を通る回帰を求めたい特殊なケースでFALSEを使います。</p>



<h3 class="wp-block-heading"><span id="toc9">引数④：補正（省略可）</span></h3>



<p class="wp-block-paragraph">統計情報を追加出力するかどうかを指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>動作</th><th>出力サイズ</th></tr></thead><tbody><tr><td>FALSE（既定）</td><td>係数のみ返す</td><td>1行2列（mとb）</td></tr><tr><td>TRUE</td><td>統計情報も返す</td><td>5行2列（係数＋統計量）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">TRUEにすると決定係数R²やF統計量など、モデルの精度を評価するための情報も一緒に得られます。実務では最初にTRUEで出力して、モデルの信頼性を確認するのがおすすめです。</p>



<h2 class="wp-block-heading"><span id="toc10">補正=TRUEで返される5行2列の出力を読み解く</span></h2>



<p class="wp-block-paragraph">LOGEST関数の補正をTRUEにすると、5行×2列（計10個）の値が返されます。ちょっと情報量が多く見えますが、それぞれの意味がわかれば難しくありません。</p>



<p class="wp-block-paragraph">次のサンプルデータで実際に試してみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>A列（年）</th><th>B列（売上・万円）</th></tr></thead><tbody><tr><td>2行目</td><td>1</td><td>100</td></tr><tr><td>3行目</td><td>2</td><td>120</td></tr><tr><td>4行目</td><td>3</td><td>150</td></tr><tr><td>5行目</td><td>4</td><td>180</td></tr><tr><td>6行目</td><td>5</td><td>220</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">D2セルに次の数式を入力してください。</p>



<pre class="wp-block-code"><code>=LOGEST(B2:B6, A2:A6, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">Microsoft 365ではD2:E6に5行2列の結果がスピルします。Excel 2019以前では、D2:E6を選択した状態で数式を入力し、Ctrl + Shift + Enter で確定してください。</p>



<h3 class="wp-block-heading"><span id="toc11">1行目：係数m・定数b（回帰式の本体）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D2（m）</th><th>E2（b）</th></tr></thead><tbody><tr><td>約1.21</td><td>約82.5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">これが回帰式 y = b × m^x の心臓部です。m ≈ 1.21 なら「年間約21%の成長率」、b ≈ 82.5 なら「x=0時点の初期値が82.5万円」を意味します。</p>



<p class="wp-block-paragraph">mの読み方をまとめておきましょう。</p>



<ul class="wp-block-list"><li>m > 1：成長（例: m=1.21 → 年21%増加）</li><li>0 < m < 1：減少（例: m=0.85 → 年15%減少）</li><li>m = 1：変化なし</li></ul>



<h3 class="wp-block-heading"><span id="toc12">2行目：各係数の標準誤差</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D3（se_m）</th><th>E3（se_b）</th></tr></thead><tbody><tr><td>mの標準誤差</td><td>bの標準誤差</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">係数の「ブレ幅」を示す値です。標準誤差が小さいほど、その係数の推定が安定していることを意味します。</p>



<h3 class="wp-block-heading"><span id="toc13">3行目：決定係数R²とyの標準誤差</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D4（R²）</th><th>E4（se_y）</th></tr></thead><tbody><tr><td>決定係数</td><td>y推定値の標準誤差</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>R²（決定係数）は最重要の指標です。</strong> 0〜1の範囲で、1に近いほどモデルがデータにフィットしていることを示します。</p>



<ul class="wp-block-list"><li>R² ≧ 0.9：モデルの当てはまりが良い。予測に使える</li><li>R² < 0.7：当てはまりが弱い。LINEST（線形回帰）を試したほうがよいかもしれない</li></ul>



<h3 class="wp-block-heading"><span id="toc14">4行目：F統計量と自由度</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D5（F値）</th><th>E5（df）</th></tr></thead><tbody><tr><td>F統計量</td><td>自由度（残差）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">F値が大きいほど「回帰モデルが偶然でなく意味がある」ことを示します。学術論文でなければ、R²だけ確認すれば実務上は十分ですよ。</p>



<h3 class="wp-block-heading"><span id="toc15">5行目：回帰平方和と残差平方和</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>D6（ssreg）</th><th>E6（ssresid）</th></tr></thead><tbody><tr><td>回帰平方和</td><td>残差平方和</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">回帰平方和はモデルが説明できた変動量、残差平方和は説明しきれなかった変動量です。ssreg ÷ (ssreg + ssresid) = R² という関係がありますよ。</p>



<h2 class="wp-block-heading"><span id="toc16">実務で使う！LOGEST→GROWTHの2ステップ売上予測</span></h2>



<p class="wp-block-paragraph">LOGEST関数で係数を確認し、GROWTH関数で予測値を出す。この2ステップが実務での定番ワークフローです。</p>



<h3 class="wp-block-heading"><span id="toc17">Step1：LOGESTで指数回帰の係数を取得する</span></h3>



<p class="wp-block-paragraph">先ほどのサンプルデータ（A2:B6）を使って、まずは係数と統計量を確認します。</p>



<pre class="wp-block-code"><code>=LOGEST(B2:B6, A2:A6, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">出力の1行目からm（成長率）とb（初期値）を、3行目からR²（決定係数）を読み取ってください。</p>



<h3 class="wp-block-heading"><span id="toc18">Step2：GROWTHで将来の売上予測値を算出する</span></h3>



<p class="wp-block-paragraph">R²が十分に高ければ（目安は0.9以上）、<a href="https://mashukabu.com/excel-function-howto-use-growth/">GROWTH関数</a>で将来の値を予測します。</p>



<p class="wp-block-paragraph">A8セルに「6」、A9セルに「7」、A10セルに「8」と入力しておきます。B8セルに次の数式を入力してください。</p>



<pre class="wp-block-code"><code>=GROWTH(B2:B6, A2:A6, A8:A10)</code></pre>



<p class="wp-block-paragraph">6〜8年目の予測値がスピルして表示されます。GROWTH関数は内部でLOGESTと同じ回帰計算を行い、新しいxに対するy値を直接返してくれますよ。</p>



<p class="wp-block-paragraph">手動で計算したい場合は、LOGESTから得たmとbを使って次の式でも同じ結果になります。</p>



<pre class="wp-block-code"><code>=E2 * D2 ^ A8</code></pre>



<p class="wp-block-paragraph">E2がb、D2がmの場合です。GROWTH関数のほうが手軽ですが、式の仕組みを理解するには手動計算も試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc19">予測精度の確認方法（R²の見方）</span></h3>



<p class="wp-block-paragraph">予測の信頼性を判断するには、R²（決定係数）をチェックするのが基本です。</p>



<figure class="wp-block-table"><table><thead><tr><th>R²の範囲</th><th>判断の目安</th></tr></thead><tbody><tr><td>0.95以上</td><td>非常に良好。安心して予測に使える</td></tr><tr><td>0.90〜0.95</td><td>良好。実務では十分な精度</td></tr><tr><td>0.70〜0.90</td><td>まずまず。予測は参考程度にとどめる</td></tr><tr><td>0.70未満</td><td>当てはまりが弱い。モデルの見直しが必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">R²が低い場合は、データが指数成長ではなく線形成長のパターンかもしれません。LINEST関数に切り替えて比較してみてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc20">LOGEST・GROWTH・LINEST・TREND 4関数の使い分け比較表</span></h2>



<p class="wp-block-paragraph">回帰関連の4関数は役割が明確に分かれています。迷ったときはこの表を参考にしてください。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>回帰モデル</th><th>返すもの</th><th>予測担当</th><th>使いどころ</th></tr></thead><tbody><tr><td>LOGEST</td><td>指数（y = b × m^x）</td><td>係数（m, b）＋統計量</td><td>GROWTH</td><td>指数成長の成長率・初期値を知りたいとき</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-growth/">GROWTH</a></td><td>指数（y = b × m^x）</td><td>予測値</td><td>—</td><td>加速度的に増減するデータの将来予測</td></tr><tr><td>LINEST</td><td>線形（y = mx + b）</td><td>係数（m, b）＋統計量</td><td>TREND</td><td>線形成長の傾き・切片を知りたいとき</td></tr><tr><td>TREND</td><td>線形（y = mx + b）</td><td>予測値</td><td>—</td><td>一定ペースで増減するデータの将来予測</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントは2つの軸で整理することです。</p>



<ul class="wp-block-list"><li><strong>データの形状</strong>: カーブ → LOGEST / GROWTH、直線 → LINEST / TREND</li><li><strong>知りたいもの</strong>: 係数（モデルの中身）→ LOGEST / LINEST、予測値（結果）→ GROWTH / TREND</li></ul>



<p class="wp-block-paragraph">LOGESTとGROWTHはセットで使うのが定番です。LOGESTでモデルの妥当性（R²）を確認してから、GROWTHで予測を出す。この流れを覚えておけば、指数回帰による予測で迷うことはありませんよ。</p>



<h3 class="wp-block-heading"><span id="toc21">複数のX変数を使う指数重回帰（LOGEST多変量版）</span></h3>



<p class="wp-block-paragraph">LOGEST関数は、Xを1列だけでなく複数列指定することもできます。2つ以上の要因でYを説明したいときに使う「多変量指数回帰」です。</p>



<p class="wp-block-paragraph">モデル式は次のとおりです。</p>



<pre class="wp-block-code"><code>y = b × m1^x1 × m2^x2</code></pre>



<p class="wp-block-paragraph">たとえば「売上（y）を、広告費（x1）と季節インデックス（x2）の2変数で説明する」というケースが典型例です。</p>



<p class="wp-block-paragraph">実際の入力例を見てみましょう。A列に広告費、B列に季節インデックス、C列に売上が入っているとします。</p>



<pre class="wp-block-code"><code>=LOGEST(C2:C13, A2:B13, TRUE, TRUE)</code></pre>



<p class="wp-block-paragraph">X変数が2列になったため、出力の1行目は <strong>3列（m2, m1, b の順）</strong> に増えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>出力セル</th><th>内容</th></tr></thead><tbody><tr><td>1列目（最左）</td><td>m2（x2の底：季節インデックスの影響）</td></tr><tr><td>2列目</td><td>m1（x1の底：広告費の影響）</td></tr><tr><td>3列目（最右）</td><td>b（初期値）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">注意が必要なのが、<strong>列の並び順が右から左に向かっている</strong>点です。X変数の指定順（A列→B列）に対して、出力はm2・m1・bと<strong>逆順</strong>で返されます。変数が増えるほど混乱しやすいので、数式の直上に変数名ラベルを書いておくと間違いが防げます。</p>



<p class="wp-block-paragraph">統計量（R²・F値など）の行構造は単変量のときと同じです。ただし列数がX変数の数＋1（定数b分）に増えます。出力範囲を事前に正確に選択してから数式を確定するようにしてください。</p>



<h3 class="wp-block-heading"><span id="toc22">定数=FALSEにするとどうなる？原点通過モデルの使いどころ</span></h3>



<p class="wp-block-paragraph">既存本文の引数③「定数」では TRUE/FALSE の動作を表で示しましたが、「いつ FALSE を使うのか」がわかりにくいという声があります。ここで具体的な判断基準を補足しておきます。</p>



<p class="wp-block-paragraph">定数=FALSE にすると、b=1 に固定した <strong>y = m^x</strong> というモデルになります。「x=0のときにyが必ず1になる」という制約を課すことと同じです。</p>



<p class="wp-block-paragraph">FALSEを使うのが適切なケース:</p>



<ul class="wp-block-list"><li><strong>倍率・比率データ</strong>: 「基準月=1倍」「基準年=100%」として設定した指数データ。x=0でy=1が保証されている</li><li><strong>自然科学・工学データ</strong>: 放射性崩壊や細菌増殖など、初期値を1（規格化済み）として測定した実験データ</li></ul>



<p class="wp-block-paragraph">ビジネスデータ（売上・アクセス数・ユーザー数など）は x=0 時点の値が1になることはほぼないため、通常は TRUE（または省略）を使うのが正解です。</p>



<p class="wp-block-paragraph">もう1点注意が必要です。定数=FALSE にすると、<strong>R²の解釈が変わります</strong>。切片なし回帰のR²は切片ありのR²より高くなりやすく、実態よりモデルの精度が良く見える傾向があります。「FALSE にしたらR²が上がった」は必ずしもモデルが改善したわけではないので、鵜呑みにしないようにしてください。</p>



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



<h3 class="wp-block-heading"><span id="toc24">配列数式の入力ミス（#VALUE!エラー）</span></h3>



<p class="wp-block-paragraph">Excel 2019以前で Ctrl + Shift + Enter を押さずにEnterだけで確定すると、正しい結果が得られません。補正=TRUEの場合は1つ目の値（m）しか返されず、残りのセルに <code>#VALUE!</code> が出ることがあります。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 出力先セル範囲（補正=TRUEなら5行2列）を選択し、数式を入力します。そのあと Ctrl + Shift + Enter で確定してください。数式バーに {=LOGEST(&#8230;)} と中かっこが表示されれば成功です。</p>



<p class="wp-block-paragraph">Microsoft 365やExcel 2021をお使いなら、自動スピルに対応しているのでこの問題は起きません。</p>



<h3 class="wp-block-heading"><span id="toc25">データが指数曲線に合わない場合</span></h3>



<p class="wp-block-paragraph">LOGEST関数自体はエラーにならなくても、R²が著しく低い場合はモデルがデータに合っていない可能性があります。</p>



<p class="wp-block-paragraph"><strong>確認ポイント</strong>:</p>



<ul class="wp-block-list"><li>yに0や負の値が含まれていないか → <code>#NUM!</code> エラーの原因になる</li><li>yとxの配列サイズが一致しているか → <code>#REF!</code> エラーの原因になる</li><li>引数に文字列が混入していないか → <code>#VALUE!</code> エラーの原因になる</li><li>データが実は線形成長ではないか → LINEST関数を試す</li></ul>



<p class="wp-block-paragraph">R²が低いからといって間違いではありません。「このデータは指数回帰に向いていない」という有用な情報が得られたわけです。LINEST関数に切り替えるか、データの前処理（外れ値の確認など）を検討してみてください。</p>



<p class="wp-block-paragraph">よくあるエラーの一覧は<a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a>も参考にしてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc26">Googleスプレッドシートで使うLOGEST関数｜ExcelとSheetsの互換性と違い</span></h3>



<p class="wp-block-paragraph">LOGEST関数はGoogleスプレッドシートにも用意されています。Excelからシートに移行した場合や、チームによって使うツールが異なる場合でも、ほぼ同じ感覚で使えます。</p>



<p class="wp-block-paragraph">Sheetsでの公式構文は次のとおりです（Googleヘルプより）。</p>



<pre class="wp-block-code"><code>=LOGEST(既知データ_y, [既知データ_x], [b], [詳細])</code></pre>



<p class="wp-block-paragraph">引数の対応関係をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数の役割</th><th>Excelの引数名</th><th>Sheetsの引数名</th></tr></thead><tbody><tr><td>予測対象のyデータ</td><td>既知のy</td><td>既知データ_y</td></tr><tr><td>対応するxデータ</td><td>既知のx</td><td>既知データ_x</td></tr><tr><td>定数bを計算するか</td><td>定数（TRUE/FALSE）</td><td>b（TRUE/FALSE）</td></tr><tr><td>統計情報を返すか</td><td>補正（TRUE/FALSE）</td><td>詳細（TRUE/FALSE）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数名こそ異なりますが、<strong>動作・返す値・TRUE/FALSEの意味はExcelと同一</strong>です。</p>



<p class="wp-block-paragraph">Sheetsで大きく異なるのは入力方法です。SheetsはExcel 365と同様に<strong>動的配列（スピル）対応</strong>のため、補正=TRUEの場合でも Ctrl+Shift+Enter は不要です。先頭セルに数式を入力してEnterを押すだけで、結果が自動的に展開されます。</p>



<p class="wp-block-paragraph"><strong>注意点</strong>: Sheetsで補正=TRUEにしたときの出力行数・列数がExcelの5行2列と完全に一致するかどうかは、公式ヘルプに明示されていません。実際に使う前にサンプルデータで出力範囲を確認しておくことをおすすめします。</p>



<h3 class="wp-block-heading"><span id="toc27">LOGEST vs FORECAST.ETS｜売上予測で迷ったときの選択基準</span></h3>



<p class="wp-block-paragraph">「売上を予測したい」という目的は同じでも、データの性質によって使う関数は変わります。LOGESTとFORECAST.ETSは特に混同されやすい組み合わせです。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較軸</th><th>LOGEST（+GROWTH）</th><th>FORECAST.ETS</th></tr></thead><tbody><tr><td>適したデータ</td><td>指数的な成長トレンドが明確</td><td>季節変動・周期性がある</td></tr><tr><td>返すもの</td><td>回帰係数（モデルの中身）</td><td>予測値のみ</td></tr><tr><td>モデルの解釈</td><td>成長率mや初期値bを読み取れる</td><td>内部アルゴリズム（ETS）は非公開</td></tr><tr><td>R²などの検証</td><td>補正=TRUEで取得できる</td><td>信頼区間はFORECAST.ETS.CONFINTで確認</td></tr><tr><td>季節変動対応</td><td>なし</td><td>あり（自動検出）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">判断の目安はシンプルです。</p>



<ul class="wp-block-list"><li><strong>毎年・毎期ほぼ同じ比率で伸びているトレンドデータ</strong> → LOGEST + GROWTH</li><li><strong>月次・四半期で繁閑の波があるデータ（季節性あり）</strong> → FORECAST.ETS</li></ul>



<p class="wp-block-paragraph">たとえば、SaaS企業の年間ARR（年間経常収益）推移のように季節変動がなく成長率が安定しているデータはLOGESTが向いています。一方、小売業の月次売上のように繁忙期・閑散期がはっきりしているデータにはFORECAST.ETSが適しています。</p>



<p class="wp-block-paragraph">なお、FORECAST.ETS関数の詳細な使い方は公式ヘルプで確認してください（アルゴリズム固有のパラメータはバージョンによって挙動が変わる場合があります）。</p>



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



<p class="wp-block-paragraph">ExcelのLOGEST関数は、指数回帰モデル（y = b × m^x）の係数と統計量を求める関数です。</p>



<p class="wp-block-paragraph">この記事のポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>LOGEST関数は「成長率m」と「初期値b」を返す。予測値がほしいときは<a href="https://mashukabu.com/excel-function-howto-use-growth/">GROWTH関数</a>を使う</li><li>引数「補正」をTRUEにすると、5行2列の統計情報（R²・F値など）も取得できる</li><li>R²（決定係数）が0.9以上ならモデルの当てはまりが良好。予測に活用できる</li><li>配列数式として入力する（Microsoft 365ではスピル対応）</li><li>カーブするデータにはLOGEST / GROWTH、直線的なデータにはLINEST / TRENDを使い分ける</li><li>yに0や負の値が含まれると <code>#NUM!</code> エラーになる</li></ul>



<p class="wp-block-paragraph">売上やアクセス数の成長率を分析したいときに、ぜひ活用してみてください。Excel関数の一覧は<a href="https://mashukabu.com/excel-function-alphabetical-order/">こちら</a>から確認できます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-logest/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのMINVERSE関数の使い方｜逆行列を求めて連立方程式を解く方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-minverse/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-minverse/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 09 Feb 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[MINVERSE]]></category>
		<category><![CDATA[行列]]></category>
		<category><![CDATA[逆行列]]></category>
		<category><![CDATA[連立方程式]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3335</guid>

					<description><![CDATA[ExcelのMINVERSE関数で正方行列の逆行列を求める方法を解説します。構文・引数の基本から、MMULT関数と組み合わせた連立方程式の解法、よくあるエラー（#VALUE!・#NUM!）の原因と対処法、MDETERM・TRANSPOSE関数との使い分けまで実例付きで紹介。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「Excelで逆行列を求めたいけど、やり方がわからない」「連立方程式をExcelで解けたら便利なのに」と思ったことはありませんか。</p>



<p class="wp-block-paragraph">手計算で逆行列を求めるのは行列が大きくなるほど大変ですし、計算ミスも起きやすいですよね。</p>



<p class="wp-block-paragraph">MINVERSE関数を使えば、正方行列の逆行列をワンステップで算出できます。さらにMMULT関数と組み合わせると、連立方程式の解まで一気に求められます。この記事では基本の使い方から実務で役立つ応用例まで、順を追って解説していきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MINVERSE関数とは？</a></li><li><a href="#toc2" tabindex="0">MINVERSE関数の書き方（構文と引数）</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">基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">2&#215;2行列の逆行列を求める</a></li><li><a href="#toc8" tabindex="0">3&#215;3行列の逆行列を求める</a></li><li><a href="#toc9" tabindex="0">セル参照を使った基本的な入力</a></li></ol></li><li><a href="#toc10" tabindex="0">実務で役立つ活用例</a><ol><li><a href="#toc11" tabindex="0">連立方程式を解く</a></li><li><a href="#toc12" tabindex="0">逆行列の存在確認と検算</a></li></ol></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc14" tabindex="0">まとめ</a><ol><li><a href="#toc15" tabindex="0">関連する行列関数との使い分け</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MINVERSE関数とは？</span></h2>



<p class="wp-block-paragraph">MINVERSE関数は、指定した正方行列（行数と列数が同じ行列）の<strong>逆行列</strong>を返す関数です。</p>



<ul class="wp-block-list"><li><strong>読み方</strong>: マトリックス・インバース（Matrix Inverse）</li><li><strong>語源</strong>: 「M」はMatrix（行列）、「INVERSE」は逆（Inverse）を意味します</li><li><strong>対応バージョン</strong>: Excel 2003以降 / Microsoft 365</li></ul>



<p class="wp-block-paragraph">逆行列とは、元の行列に掛け合わせると単位行列（対角成分が1、それ以外が0の行列）になる行列のことです。数式で書くと「A x A^(-1) = I（単位行列）」という関係が成り立ちます。</p>



<p class="wp-block-paragraph">逆行列が求められるのは、行列式（MDETERM関数で算出できる値）が0でない正方行列に限られます。行列式が0の行列は「特異行列」と呼ばれ、逆行列は存在しません。</p>



<h2 class="wp-block-heading"><span id="toc2">MINVERSE関数の書き方（構文と引数）</span></h2>



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



<pre class="wp-block-code"><code>=MINVERSE(配列)</code></pre>



<p class="wp-block-paragraph">MINVERSE関数の引数は1つだけなので、とてもシンプルです。</p>



<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>配列</td><td>必須</td><td>行数と列数が等しい数値配列（正方行列）を指定します</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>配列に指定できるもの</strong>:</p>



<ul class="wp-block-list"><li>セル範囲（例: B2:D4）</li><li>配列定数（例: {1,2;3,4}）</li></ul>



<p class="wp-block-paragraph"><strong>注意点</strong>:</p>



<ul class="wp-block-list"><li>行数と列数が異なる範囲を指定すると <code>#VALUE!</code> エラーになります</li><li>空白セルや文字列が含まれていると <code>#VALUE!</code> エラーになります</li><li>行列式が0の行列を指定すると <code>#NUM!</code> エラーになります</li></ul>



<h3 class="wp-block-heading"><span id="toc5">配列数式としての入力方法</span></h3>



<p class="wp-block-paragraph">MINVERSE関数は結果を配列（複数のセル）で返します。入力方法はExcelのバージョンによって異なります。</p>



<ul class="wp-block-list"><li><strong>Microsoft 365 / Excel 2021以降</strong>: 1つのセルに <code>=MINVERSE(B2:C3)</code> と入力してEnterキーを押すだけで、結果が自動的にスピル（隣接セルに展開）されます</li><li><strong>Excel 2019以前</strong>: 結果を表示したいセル範囲をあらかじめ選択し、数式を入力した後に <strong>Ctrl + Shift + Enter</strong> で確定します。数式バーに <code>{=MINVERSE(B2:C3)}</code> と波括弧が付けば成功です</li></ul>



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



<h3 class="wp-block-heading"><span id="toc7">2&#215;2行列の逆行列を求める</span></h3>



<p class="wp-block-paragraph">まずは最もシンプルな2&#215;2行列で試してみましょう。</p>



<p class="wp-block-paragraph">セルB2:C3に以下のような行列が入力されているとします。</p>



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



<p class="wp-block-paragraph">逆行列を求めるには、結果を表示したいセル（例: E2）に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=MINVERSE(B2:C3)</code></pre>



<p class="wp-block-paragraph">結果として、E2:F3に逆行列の値が表示されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>E</th><th>F</th></tr></thead><tbody><tr><td>2</td><td>0.6</td><td>-0.7</td></tr><tr><td>3</td><td>-0.2</td><td>0.4</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この結果が正しいか確認するには、元の行列と逆行列を掛け合わせて単位行列になるかチェックします。<a href="https://mashukabu.com/excel-function-howto-use-mmult/">MMULT関数</a>を使って <code>=MMULT(B2:C3,E2:F3)</code> と入力すると、対角成分が1、それ以外がほぼ0の単位行列が得られます。</p>



<h3 class="wp-block-heading"><span id="toc8">3&#215;3行列の逆行列を求める</span></h3>



<p class="wp-block-paragraph">3&#215;3以上の行列でも使い方は同じです。</p>



<p class="wp-block-paragraph">セルB2:D4に3&#215;3の行列が入力されている場合、結果を表示したいセル（例: F2）に次のように入力します。</p>



<pre class="wp-block-code"><code>=MINVERSE(B2:D4)</code></pre>



<p class="wp-block-paragraph">F2:H4に3&#215;3の逆行列が展開されます。行列が大きくなるほど手計算は大変ですが、MINVERSE関数なら一瞬で結果が出るのでとても便利です。</p>



<h3 class="wp-block-heading"><span id="toc9">セル参照を使った基本的な入力</span></h3>



<p class="wp-block-paragraph">配列定数を直接指定する方法もあります。2&#215;2行列の場合、次のように書けます。</p>



<pre class="wp-block-code"><code>=MINVERSE({4,7;2,6})</code></pre>



<p class="wp-block-paragraph">配列定数では、列の区切りにカンマ（,）、行の区切りにセミコロン（;）を使います。ただし、行列が大きくなるとセル範囲で指定する方が見やすくなります。</p>



<h2 class="wp-block-heading"><span id="toc10">実務で役立つ活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc11">連立方程式を解く</span></h3>



<p class="wp-block-paragraph">MINVERSE関数の実務的な使い道として最も多いのが、連立方程式を解くケースです。</p>



<p class="wp-block-paragraph">たとえば、次の連立方程式を考えます。</p>



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



<p class="wp-block-paragraph">これを行列の形に変換すると「Ax = b」と表せます。</p>



<ul class="wp-block-list"><li>係数行列 A: <code>{2,3;4,1}</code></li><li>定数ベクトル b: <code>{8;10}</code></li></ul>



<p class="wp-block-paragraph">解は「x = A^(-1) x b」なので、MINVERSE関数と<a href="https://mashukabu.com/excel-function-howto-use-mmult/">MMULT関数</a>を組み合わせます。</p>



<pre class="wp-block-code"><code>=MMULT(MINVERSE(B2:C3),E2:E3)</code></pre>



<p class="wp-block-paragraph">B2:C3に係数行列、E2:E3に定数ベクトルを入力しておくと、この数式で <code>x = 2.6</code>, <code>y = 0.93...</code> といった解が一発で求められます。</p>



<p class="wp-block-paragraph">手順をまとめると次のとおりです。</p>



<ol class="wp-block-list"><li>係数行列をセルに入力する（例: B2:C3）</li><li>定数ベクトルをセルに入力する（例: E2:E3）</li><li>解を表示したいセルに <code>=MMULT(MINVERSE(B2:C3),E2:E3)</code> と入力する</li><li>Enterキーを押す（Excel 2019以前はCtrl+Shift+Enter）</li></ol>



<p class="wp-block-paragraph">3元連立方程式でも同じ考え方で解けます。係数行列を3&#215;3に、定数ベクトルを3行にするだけです。</p>



<h3 class="wp-block-heading"><span id="toc12">逆行列の存在確認と検算</span></h3>



<p class="wp-block-paragraph">逆行列が存在するかどうかを事前にチェックするには、<a href="https://mashukabu.com/excel-function-howto-use-mdeterm/">MDETERM関数</a>で行列式を求めます。</p>



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



<p class="wp-block-paragraph">この結果が0でなければ逆行列が存在します。0の場合はMINVERSE関数を使っても <code>#NUM!</code> エラーになるため、先にMDETERM関数で確認しておくとスムーズです。</p>



<p class="wp-block-paragraph">逆行列が正しいかの検算には、元の行列と逆行列の積が単位行列になるかを確認します。</p>



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



<p class="wp-block-paragraph">結果の対角成分が1、それ以外が0（または非常に小さい値）になっていれば正しく計算されています。浮動小数点の関係で完全な0にならず、1E-16のような極小の値が表示されることがありますが、これは誤差の範囲内なので問題ありません。</p>



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



<p class="wp-block-paragraph">MINVERSE関数で発生しやすいエラーと、その原因・対処法をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>行数と列数が異なる範囲を指定した</td><td>正方行列（2&#215;2、3&#215;3など）になっているか確認する</td></tr><tr><td><code>#VALUE!</code></td><td>配列内に空白セルや文字列が含まれている</td><td>すべてのセルに数値が入力されているか確認する</td></tr><tr><td><code>#NUM!</code></td><td>行列式が0の特異行列を指定した</td><td>MDETERM関数で行列式を確認し、0でないことを確かめる</td></tr><tr><td>極小の値が表示される</td><td>浮動小数点演算の誤差</td><td>ROUND関数で丸める（例: <code>=ROUND(MINVERSE(B2:C3),10)</code>）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>#VALUE!</code> エラーが出たときは、まず指定した範囲が正方形になっているかを確認してください。たとえば2行3列の範囲を指定していないか、途中に空白や文字が混じっていないかをチェックするのがポイントです。</p>



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



<p class="wp-block-paragraph">MINVERSE関数は、Excelで正方行列の逆行列を求めるための関数です。</p>



<p class="wp-block-paragraph">この記事のポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li>MINVERSE関数の引数は「配列」の1つだけ。正方行列を指定する</li><li>Microsoft 365やExcel 2021以降ではスピル対応。Excel 2019以前ではCtrl+Shift+Enterで入力する</li><li>MMULT関数と組み合わせることで連立方程式を解ける</li><li>エラーが出たらまず「正方行列か」「数値のみか」「行列式が0でないか」を確認する</li></ul>



<p class="wp-block-paragraph">逆行列の計算は手作業だとミスが起きやすい処理ですが、MINVERSE関数を使えば正確に素早く結果を得られます。連立方程式を解く場面でもぜひ活用してみてください。</p>



<h3 class="wp-block-heading"><span id="toc15">関連する行列関数との使い分け</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>機能</th><th>入力</th><th>出力</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-minverse/">MINVERSE</a></td><td>逆行列を求める</td><td>正方行列</td><td>逆行列（配列）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-mmult/">MMULT</a></td><td>行列の積を求める</td><td>2つの行列</td><td>積の行列（配列）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-mdeterm/">MDETERM</a></td><td>行列式を求める</td><td>正方行列</td><td>数値（スカラー）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE</a></td><td>行と列を入れ替える</td><td>任意の配列</td><td>転置行列（配列）</td></tr></tbody></table></figure>



<ul class="wp-block-list"><li>連立方程式を解きたい → MINVERSE + MMULT</li><li>行列の掛け算をしたい → MMULT</li><li>逆行列が存在するか確認したい → MDETERM</li><li>行と列を入れ替えたい → TRANSPOSE</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-minverse/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MMULT関数の使い方｜行列の積を計算して売上集計や連立方程式を解く</title>
		<link>https://mashukabu.com/excel-function-howto-use-mmult/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-mmult/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 16 Jan 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[MMULT]]></category>
		<category><![CDATA[行列]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3274</guid>

					<description><![CDATA[ExcelのMMULT関数で行列の積を計算する方法を解説。売上集計・重み付き平均・連立方程式など実務3パターンをMINVERSEとの組み合わせ例つきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「複数商品の価格×数量の合計を店舗ごとに一括で計算したい」「連立方程式をExcelで解きたい」――行列計算が必要な場面で活躍するのが <strong>MMULT関数</strong> です。</p>



<p class="wp-block-paragraph">MMULT関数は2つの配列（行列）の積を計算します。手計算では面倒な行列の掛け算を一瞬で処理でき、MINVERSE・MDETERM関数と組み合わせれば連立方程式も解けます。一見むずかしそうですが、「複数の掛け算の合計を一括で求める」という使い方から始めると、意外と手軽に使えます。</p>



<p class="wp-block-paragraph">「行列という言葉だけで敬遠していた」という方も、この記事で具体的な数式と実例を見れば、自分のシートに取り入れるイメージが持てるはずです。</p>



<p class="wp-block-paragraph">この記事では行列計算の基礎から、スピル対応の使い方、SUMPRODUCT関数との違い、実務での活用例まで丁寧に解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MMULT関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">できること</a></li></ol></li><li><a href="#toc4" tabindex="0">MMULT関数の書き方</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc7" tabindex="0">基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">例1：1行×N列 と N行×1列 の行列積（内積）</a></li><li><a href="#toc9" tabindex="0">例2：複数店舗×複数商品の売上合計</a></li><li><a href="#toc10" tabindex="0">例3：2×2行列 × 2×2行列</a></li></ol></li><li><a href="#toc11" tabindex="0">スピルとCSE配列数式</a><ol><li><a href="#toc12" tabindex="0">スピル対応（Excel 2019以降・Microsoft 365）</a></li><li><a href="#toc13" tabindex="0">旧CSE配列数式（Excel 2016以前）</a></li></ol></li><li><a href="#toc14" tabindex="0">MINVERSE関数との組み合わせ：連立方程式を解く</a><ol><li><a href="#toc15" tabindex="0">連立方程式 AX = B の解法</a></li><li><a href="#toc16" tabindex="0">MDETERM関数で事前チェック</a></li></ol></li><li><a href="#toc17" tabindex="0">MDETERM・MINVERSEとの使い分け</a></li><li><a href="#toc18" tabindex="0">TRANSPOSE関数との組み合わせ</a></li><li><a href="#toc19" tabindex="0">SUMPRODUCT関数との違い</a></li><li><a href="#toc20" tabindex="0">重み付き平均への応用</a><ol><li><a href="#toc21" tabindex="0">人事評価への応用</a></li></ol></li><li><a href="#toc22" tabindex="0">構造化テーブルでMMULTを自動拡張する</a><ol><li><a href="#toc23" tabindex="0">スピル参照（#）との合わせ技</a></li></ol></li><li><a href="#toc24" tabindex="0">在庫評価・原価計算への応用</a><ol><li><a href="#toc25" tabindex="0">倉庫別の在庫評価額を一括計算する</a></li><li><a href="#toc26" tabindex="0">月別売上を時系列でまとめて出す</a></li><li><a href="#toc27" tabindex="0">期間×単価変動を組み合わせるときの注意</a></li></ol></li><li><a href="#toc28" tabindex="0">よくある疑問（FAQ）</a><ol><li><a href="#toc29" tabindex="0">Q. MMULT関数はExcelのどのバージョンから使えますか？</a></li><li><a href="#toc30" tabindex="0">Q. 配列定数でもMMULTは使えますか？</a></li><li><a href="#toc31" tabindex="0">Q. 行列が正方形でなくてもMMULTは使えますか？</a></li></ol></li><li><a href="#toc32" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc33" tabindex="0">#VALUE!が出たときの確認手順</a></li></ol></li><li><a href="#toc34" tabindex="0">最小二乗法（線形回帰）への応用</a></li><li><a href="#toc35" tabindex="0">SEQUENCE関数で単位行列を作成・逆行列を検証する</a></li><li><a href="#toc36" tabindex="0">BYROW・MAKEARRAY との組み合わせ（Microsoft 365 専用）</a></li><li><a href="#toc37" tabindex="0">FILTER 関数と組み合わせた条件付き行列計算（Microsoft 365）</a></li><li><a href="#toc38" tabindex="0">Power Query / Power Pivot とMMULTの使い分け</a><ol><li><a href="#toc39" tabindex="0">判断のものさし</a></li><li><a href="#toc40" tabindex="0">MMULTからPower Queryに移すサイン</a></li></ol></li><li><a href="#toc41" tabindex="0">まとめ</a></li><li><a href="#toc42" tabindex="0">注意事項と使い上のポイント</a><ol><li><a href="#toc43" tabindex="0">大きな行列では処理速度に注意</a></li><li><a href="#toc44" tabindex="0">数式を保護する場合はセルのロックを活用する</a></li><li><a href="#toc45" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MMULT関数とは？</span></h2>



<h3 class="wp-block-heading"><span id="toc2">読み方と語源</span></h3>



<p class="wp-block-paragraph">「エム マルト」と読みます。「Matrix Multiplication（行列乗算）」の略で、2つの行列を掛け合わせる関数です。</p>



<h3 class="wp-block-heading"><span id="toc3">できること</span></h3>



<p class="wp-block-paragraph">2つの行列（配列）の <strong>行列積</strong> を計算し、新しい行列を返します。</p>



<ul class="wp-block-list"><li>複数商品×複数店舗の売上を一括計算する</li><li>連立方程式をMINVERSEと組み合わせて解く</li><li>重み付き平均・加重スコアを一括算出する</li></ul>



<p class="wp-block-paragraph"><strong>行列積の条件</strong>：</p>



<ul class="wp-block-list"><li>配列1の <strong>列数</strong> と 配列2の <strong>行数</strong> が一致している必要があります</li><li><code>(m×n) × (n×p) = (m×p)</code> の形で計算されます</li></ul>



<p class="wp-block-paragraph">つまり「左の行列の横のサイズ」と「右の行列の縦のサイズ」が同じでなければいけません。この条件を確認してから数式を組む習慣をつけると、エラーを防ぎやすくなります。</p>



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



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



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



<h3 class="wp-block-heading"><span id="toc6">引数の説明</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>掛け合わせる1つ目の行列（セル範囲または配列定数）</td></tr><tr><td>配列2</td><td>必須</td><td>掛け合わせる2つ目の行列（配列1の列数 = 配列2の行数であること）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>注意点</strong>：</p>



<ul class="wp-block-list"><li>配列に文字列・論理値・空白が含まれていると <code>#VALUE!</code> エラー</li><li>配列1の列数と配列2の行数が一致しないと <code>#VALUE!</code> エラー</li><li>結果は複数セルに展開されるため、スピル（自動展開）が動作します</li></ul>



<h2 class="wp-block-heading"><span id="toc7">基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc8">例1：1行×N列 と N行×1列 の行列積（内積）</span></h3>



<p class="wp-block-paragraph">3種類の商品の単価が1行に、売上数量が1列にある場合：</p>



<p class="wp-block-paragraph"><strong>単価（B2:D2）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>商品A</th><th>商品B</th><th>商品C</th></tr></thead><tbody><tr><td>500</td><td>800</td><td>1200</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>数量（F2:F4）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>数量</th></tr></thead><tbody><tr><td>10</td></tr><tr><td>5</td></tr><tr><td>3</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=MMULT(B2:D2, F2:F4)</code></pre>



<p class="wp-block-paragraph">結果：<code>500×10 + 800×5 + 1200×3 = 14600</code></p>



<p class="wp-block-paragraph">SUMPRODUCT関数と同じ計算ですが、行列の形式でまとめて処理できます。</p>



<h3 class="wp-block-heading"><span id="toc9">例2：複数店舗×複数商品の売上合計</span></h3>



<p class="wp-block-paragraph">3商品×3店舗のデータがある場合、1回のMMULTで各店舗の売上合計を一括計算できます。</p>



<p class="wp-block-paragraph"><strong>単価（B1:D1）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>商品A</th><th>商品B</th><th>商品C</th></tr></thead><tbody><tr><td>500</td><td>800</td><td>1200</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>各店舗の販売数量（B2:D4）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>商品A</th><th>商品B</th><th>商品C</th><th>店舗</th></tr></thead><tbody><tr><td>10</td><td>5</td><td>3</td><td>店舗A</td></tr><tr><td>8</td><td>6</td><td>4</td><td>店舗B</td></tr><tr><td>12</td><td>3</td><td>2</td><td>店舗C</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=MMULT(B2:D4, TRANSPOSE(B1:D1))</code></pre>



<p class="wp-block-paragraph">各行（店舗）の売上合計が一列で返されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>店舗</th><th>売上合計</th></tr></thead><tbody><tr><td>店舗A</td><td>500×10+800×5+1200×3 = 14,600</td></tr><tr><td>店舗B</td><td>500×8+800×6+1200×4 = 13,600</td></tr><tr><td>店舗C</td><td>500×12+800×3+1200×2 = 11,400</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">TRANSPOSE関数で単価を1行から1列に変換することで、行列の次元が合います（3×3 × 3×1 = 3×1）。</p>



<h3 class="wp-block-heading"><span id="toc10">例3：2×2行列 × 2×2行列</span></h3>



<p class="wp-block-paragraph">A1:B2に2×2行列、D1:E2に別の2×2行列がある場合：</p>



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



<p class="wp-block-paragraph">結果として2×2の行列がスピルで展開されます。</p>



<h2 class="wp-block-heading"><span id="toc11">スピルとCSE配列数式</span></h2>



<h3 class="wp-block-heading"><span id="toc12">スピル対応（Excel 2019以降・Microsoft 365）</span></h3>



<p class="wp-block-paragraph">Excel 2019・Microsoft 365では、MMULTの結果は <strong>スピル</strong>（自動展開）されます。結果の左上セルに数式を1つ入力するだけで、必要な範囲に自動的に展開されます。</p>



<pre class="wp-block-code"><code>C1: =MMULT(A1:B2, D1:E2)   ← C1だけに入力。結果がC1:D2に展開される</code></pre>



<p class="wp-block-paragraph">スピルが展開される範囲（「スピル範囲」）に既存のデータがあると、スピルエラー（#SPILL!）が発生します。展開先のセルを空にしてから数式を入力してください。</p>



<h3 class="wp-block-heading"><span id="toc13">旧CSE配列数式（Excel 2016以前）</span></h3>



<p class="wp-block-paragraph">旧バージョンのExcelでは、<code>Ctrl+Shift+Enter</code> で確定する <strong>CSE配列数式</strong> として入力する必要がありました。</p>



<pre class="wp-block-code"><code>{=MMULT(A1:B2, D1:E2)}   ← {} は Ctrl+Shift+Enter で入力</code></pre>



<p class="wp-block-paragraph">現行のExcelでは通常のEnterで入力できます。古いファイルにCSE形式があった場合も、通常の数式として書き直せます。</p>



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



<p class="wp-block-paragraph">MMULT関数の最も強力な応用が、MINVERSE（逆行列）との組み合わせによる <strong>連立方程式の解法</strong> です。</p>



<h3 class="wp-block-heading"><span id="toc15">連立方程式 AX = B の解法</span></h3>



<p class="wp-block-paragraph"><strong>問題</strong>：次の連立方程式を解く</p>



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



<p class="wp-block-paragraph"><strong>手順</strong></p>



<ol class="wp-block-list"><li>係数行列A（B1:C2）に以下を入力する</li></ol>



<figure class="wp-block-table"><table><thead><tr><th>列B</th><th>列C</th></tr></thead><tbody><tr><td>2</td><td>1</td></tr><tr><td>1</td><td>3</td></tr></tbody></table></figure>



<ol class="wp-block-list"><li>右辺ベクトルB（E1:E2）に以下を入力する</li></ol>



<figure class="wp-block-table"><table><thead><tr><th>列E</th></tr></thead><tbody><tr><td>8</td></tr><tr><td>9</td></tr></tbody></table></figure>



<ol class="wp-block-list"><li>解の数式を入力する</li></ol>



<pre class="wp-block-code"><code>=MMULT(MINVERSE(B1:C2), E1:E2)</code></pre>



<p class="wp-block-paragraph">結果：x=3, y=2 がスピルで返されます。</p>



<p class="wp-block-paragraph">連立方程式の数が増えても、行列の範囲を広げるだけで同じ数式のパターンで対応できます。ただしMINVERSEを使う前に、係数行列の行列式が0でないことを確認しておくと安心です。</p>



<p class="wp-block-paragraph"><strong>3変数の連立方程式の例（パターン確認）</strong></p>



<pre class="wp-block-code"><code>2x +  y + z = 9
 x + 3y + z = 12
 x +  y + 4z = 14</code></pre>



<p class="wp-block-paragraph">係数行列A（3×3）と右辺ベクトルB（3×1）を用意して、同じ数式で解けます。</p>



<pre class="wp-block-code"><code>=MMULT(MINVERSE(A), B)    ← 範囲が変わるだけで数式は同じ</code></pre>



<p class="wp-block-paragraph">方程式の数が変わっても数式の形が変わらないのがMMULT+MINVERSEの強みです。財務モデリングや原価計算で変数の多い連立方程式を扱う場面で重宝します。</p>



<h3 class="wp-block-heading"><span id="toc16">MDETERM関数で事前チェック</span></h3>



<pre class="wp-block-code"><code>=MDETERM(B1:C2)</code></pre>



<p class="wp-block-paragraph">この結果が0だと逆行列が存在せず、MINVERSEを使うと#NUM!エラーになります。連立方程式に解が存在しない（または一意に定まらない）サインです。</p>



<h2 class="wp-block-heading"><span id="toc17">MDETERM・MINVERSEとの使い分け</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>MINVERSE</td><td>逆行列（配列）</td><td>連立方程式の解法でMMULTと組み合わせる</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-mdeterm/">MDETERM</a></td><td>行列式（スカラー）</td><td>逆行列が存在するか確認する（0なら逆行列なし）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">3つの関数をセットで覚えておくと、行列計算が必要なシートを一から組み立てるときに迷わなくなります。</p>



<h2 class="wp-block-heading"><span id="toc18">TRANSPOSE関数との組み合わせ</span></h2>



<p class="wp-block-paragraph">行列の転置（行と列の入れ替え）が必要な場合はTRANSPOSE関数を使います。</p>



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



<p class="wp-block-paragraph">行ベクトルを列ベクトルに変換してMMULTと組み合わせるパターンが特に多く使われます。</p>



<p class="wp-block-paragraph"><strong>具体的な場面</strong>：</p>



<ul class="wp-block-list"><li>単価が横1行で入力されているのに数量が縦1列の場合、TRANSPOSEで単価を縦に変換してからMMULTに渡す</li><li>データの形式が固定されていてレイアウトを変更できないときに重宝する</li></ul>



<h2 class="wp-block-heading"><span id="toc19">SUMPRODUCT関数との違い</span></h2>



<p class="wp-block-paragraph">「MMULT関数とSUMPRODUCT関数は何が違うのか」と思う方も多いでしょう。簡単に整理すると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>観点</th><th>MMULT</th><th>SUMPRODUCT</th></tr></thead><tbody><tr><td>計算の対象</td><td>行列全体</td><td>配列の要素ごとの積の合計</td></tr><tr><td>複数行への一括処理</td><td>得意（全行の結果を一度に返す）</td><td>1条件ずつ個別に書く必要あり</td></tr><tr><td>戻り値の形</td><td>行列（複数セルに展開）</td><td>スカラー（単一値）</td></tr><tr><td>難易度</td><td>やや高い（次元合わせが必要）</td><td>直感的でわかりやすい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「商品ごとの売上を1つだけ求めたい」ならSUMPRODUCTが手軽です。一方「複数店舗や複数期間の結果をまとめて出したい」ならMMULTが圧倒的に効率的です。</p>



<pre class="wp-block-code"><code>' SUMPRODUCT（1店舗の売上だけ求める）
=SUMPRODUCT(B1:D1, B2:D2)

' MMULT（全店舗の売上を一括で求める）
=MMULT(B2:D4, TRANSPOSE(B1:D1))</code></pre>



<p class="wp-block-paragraph">データ規模が大きいほど、MMULTを使う恩恵が大きくなります。</p>



<h2 class="wp-block-heading"><span id="toc20">重み付き平均への応用</span></h2>



<p class="wp-block-paragraph">テストの点数や評価スコアに重みをかけて合計する「重み付き平均」も、MMULTで一括計算できます。</p>



<p class="wp-block-paragraph"><strong>例：3科目のテスト点数と重みから加重合計を計算する</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>科目</th><th>重み（B列）</th><th>生徒A（C列）</th><th>生徒B（D列）</th><th>生徒C（E列）</th></tr></thead><tbody><tr><td>国語</td><td>0.30</td><td>80</td><td>70</td><td>90</td></tr><tr><td>数学</td><td>0.40</td><td>60</td><td>85</td><td>75</td></tr><tr><td>英語</td><td>0.30</td><td>75</td><td>80</td><td>65</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=MMULT(TRANSPOSE(B2:B4), C2:E4)</code></pre>



<p class="wp-block-paragraph">各生徒の加重合計が1行（水平方向）で返されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>生徒A</th><th>生徒B</th><th>生徒C</th></tr></thead><tbody><tr><td>70.5</td><td>79.5</td><td>76.5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SUMPRODUCT関数で1人ずつ計算するより、MMULTなら全生徒の結果を1回の数式で出せるので、人数が多いほど効果を発揮します。</p>



<h3 class="wp-block-heading"><span id="toc21">人事評価への応用</span></h3>



<p class="wp-block-paragraph">業績・スキル・行動指針など複数の評価項目に重みをかけて総合スコアを出す場合も同じパターンが使えます。評価対象者が増えても数式を書き直す必要がなく、範囲を広げるだけで対応できます。</p>



<pre class="wp-block-code"><code>評価項目（B2:B4）: 重み0.5, 0.3, 0.2
社員別スコア（C2:E4）: 各社員の評価点
=MMULT(TRANSPOSE(B2:B4), C2:E4)</code></pre>



<p class="wp-block-paragraph">人事部や管理職の方が評価集計シートを作るときに、このパターンを使うと一括更新できてメンテナンスが楽になりますよ。</p>



<h2 class="wp-block-heading"><span id="toc22">構造化テーブルでMMULTを自動拡張する</span></h2>



<p class="wp-block-paragraph">ここまでの例ではセル範囲を <code>B2:D4</code> のように直接書いてきましたが、データ行が増えるたびに数式を直すのは面倒です。Excelの <strong>構造化テーブル</strong>（「ホーム」→「テーブルとして書式設定」、またはCtrl+T）と組み合わせると、行を追加するだけで数式が自動拡張されてくれます。</p>



<p class="wp-block-paragraph">たとえば次のように2つのテーブルを用意します。</p>



<p class="wp-block-paragraph"><strong>テーブル名：単価マスタ（B列：商品ID、C列：単価）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>商品ID</th><th>単価</th></tr></thead><tbody><tr><td>A001</td><td>500</td></tr><tr><td>A002</td><td>800</td></tr><tr><td>A003</td><td>1200</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>テーブル名：販売実績（B列：店舗、C〜E列：A001 / A002 / A003 の販売数量）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>店舗</th><th>A001</th><th>A002</th><th>A003</th></tr></thead><tbody><tr><td>店舗A</td><td>10</td><td>5</td><td>3</td></tr><tr><td>店舗B</td><td>8</td><td>6</td><td>4</td></tr><tr><td>店舗C</td><td>12</td><td>3</td><td>2</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">各店舗の売上合計は、構造化テーブル参照を使って次のように書けます。</p>



<pre class="wp-block-code"><code>=MMULT(販売実績[[A001]:[A003]], 単価マスタ[単価])</code></pre>



<p class="wp-block-paragraph"><code>販売実績[[A001]:[A003]]</code> で3×3の数量行列、<code>単価マスタ[単価]</code> で3×1の単価ベクトルを表しています。販売実績テーブルに「店舗D」の行を追加すると、MMULTの結果も自動で4行にスピル拡張されます。</p>



<p class="wp-block-paragraph">範囲を直書きする方式と違って、商品が増えたときも <code>[[A001]:[A003]]</code> を <code>[[A001]:[A004]]</code> に伸ばすだけで済むため、メンテナンスがかなり楽になります。複数人で共有するシートでは、構造化テーブル参照をぜひ使ってみてください。</p>



<h3 class="wp-block-heading"><span id="toc23">スピル参照（#）との合わせ技</span></h3>



<p class="wp-block-paragraph">MMULTの結果をさらに別の計算に渡したいときは、スピル参照（数式の入ったセル番地 + <code>#</code>）が便利です。</p>



<pre class="wp-block-code"><code>H2: =MMULT(販売実績[[A001]:[A003]], 単価マスタ[単価])    ← 売上ベクトル
I2: =SUM(H2#)                                       ← 全店舗の総売上
J2: =H2# / SUM(H2#)                                 ← 店舗別の構成比</code></pre>



<p class="wp-block-paragraph"><code>H2#</code> と書くだけで売上ベクトル全体を再利用できます。中間計算用のセルを別途用意せずに済むので、シート全体がすっきりします。</p>



<h2 class="wp-block-heading"><span id="toc24">在庫評価・原価計算への応用</span></h2>



<p class="wp-block-paragraph">MMULT関数は売上集計だけでなく、在庫評価や原価計算でも力を発揮します。基本パターンは <strong>「単価マスタ × 数量行列 = 金額の行列」</strong> という形です。</p>



<h3 class="wp-block-heading"><span id="toc25">倉庫別の在庫評価額を一括計算する</span></h3>



<p class="wp-block-paragraph">商品×倉庫の在庫数量と、商品別の単価マスタがあるとします。</p>



<p class="wp-block-paragraph"><strong>単価マスタ（B2:B4、3×1）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>商品</th><th>単価</th></tr></thead><tbody><tr><td>商品A</td><td>500</td></tr><tr><td>商品B</td><td>800</td></tr><tr><td>商品C</td><td>1200</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>倉庫別在庫数量（D2:F4、3商品×3倉庫）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>商品</th><th>倉庫1</th><th>倉庫2</th><th>倉庫3</th></tr></thead><tbody><tr><td>商品A</td><td>100</td><td>80</td><td>50</td></tr><tr><td>商品B</td><td>60</td><td>70</td><td>40</td></tr><tr><td>商品C</td><td>30</td><td>20</td><td>25</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">倉庫別の在庫評価額を求めるには、単価ベクトルを転置して掛けます。</p>



<pre class="wp-block-code"><code>=MMULT(TRANSPOSE(B2:B4), D2:F4)</code></pre>



<p class="wp-block-paragraph">1×3 × 3×3 = 1×3 となり、横方向に3倉庫分の在庫評価額がスピルで返ります。倉庫が増えたら数量行列の右に列を足すだけで対応できます。</p>



<h3 class="wp-block-heading"><span id="toc26">月別売上を時系列でまとめて出す</span></h3>



<p class="wp-block-paragraph">時系列の売上集計も同じパターンです。月別販売数量と単価マスタを用意します。</p>



<p class="wp-block-paragraph"><strong>月別販売数量（A2:C7、6か月 × 3商品）</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>月</th><th>商品A</th><th>商品B</th><th>商品C</th></tr></thead><tbody><tr><td>1月</td><td>10</td><td>5</td><td>3</td></tr><tr><td>2月</td><td>12</td><td>4</td><td>4</td></tr><tr><td>3月</td><td>8</td><td>6</td><td>2</td></tr><tr><td>4月</td><td>15</td><td>3</td><td>5</td></tr><tr><td>5月</td><td>11</td><td>5</td><td>3</td></tr><tr><td>6月</td><td>14</td><td>7</td><td>4</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=MMULT(A2:C7, 単価マスタ[単価])</code></pre>



<p class="wp-block-paragraph">6か月分の売上合計が縦方向にスピルします。月次レポートで「先月の数字を入れただけで全体が更新される」状態を作れるので、毎月の集計作業を一気にラクにできますよ。</p>



<h3 class="wp-block-heading"><span id="toc27">期間×単価変動を組み合わせるときの注意</span></h3>



<p class="wp-block-paragraph">商品の単価が月によって変動する場合は、単価表も「商品×月」の2次元になります。同じ「商品×月」の販売数量行列と組み合わせて売上を出したいとき、行列積では次元が合わないため、要素ごとの積を合計するほうが素直です。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(単価行列, 数量行列)</code></pre>



<p class="wp-block-paragraph">このケースは <a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT関数</a> のほうが直感的に書けます。「次元が合うときはMMULT、要素ごとに対応する単価がある場合はSUMPRODUCT」と覚えておくと迷いません。</p>



<h2 class="wp-block-heading"><span id="toc28">よくある疑問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc29">Q. MMULT関数はExcelのどのバージョンから使えますか？</span></h3>



<p class="wp-block-paragraph">MMULT関数は旧バージョンのExcelから使える古くからある関数です。Excel 2007、2010、2013、2016でも使えます。スピル（自動展開）はExcel 2019・Microsoft 365からの機能ですが、CSE配列数式（Ctrl+Shift+Enter）でExcel 2016以前でも同等の結果が得られます。</p>



<h3 class="wp-block-heading"><span id="toc30">Q. 配列定数でもMMULTは使えますか？</span></h3>



<p class="wp-block-paragraph">はい。セル範囲だけでなく、<code>{1,2,3;4,5,6}</code> のような配列定数を直接引数に渡すこともできます。</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="toc31">Q. 行列が正方形でなくてもMMULTは使えますか？</span></h3>



<p class="wp-block-paragraph">はい。「配列1の列数 = 配列2の行数」であれば、正方行列（m×m）でなくても使えます。たとえば3×2の行列と2×4の行列は3×4の結果を返します。正方形でないケースのほうが実務では多いので、「列数と行数が合っているか」だけを確認する習慣をつけておきましょう。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>配列1の列数と配列2の行数が一致しない</td><td>行列の次元を確認する（m×n と n×p の形）</td></tr><tr><td><code>#VALUE!</code></td><td>配列に文字列・論理値・空白が含まれている</td><td>範囲内のセルが全て数値か確認する</td></tr><tr><td><code>#NUM!</code></td><td>MINVERSEで行列式が0の逆行列を計算しようとした</td><td>事前にMDETERM関数で0でないことを確認する</td></tr><tr><td><code>#SPILL!</code></td><td>スピル展開先のセルにデータがある</td><td>展開先の範囲を空にしてから再実行する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc33">#VALUE!が出たときの確認手順</span></h3>



<ol class="wp-block-list"><li>配列1のサイズ（行数×列数）を確認する（<code>=ROWS(配列1)</code> と <code>=COLUMNS(配列1)</code> を使うと簡単）</li><li>配列2のサイズを確認する（<code>=ROWS(配列2)</code> と <code>=COLUMNS(配列2)</code>）</li><li>配列1の列数 = 配列2の行数になっているか確認する</li><li>範囲内に数値以外が混入していないか確認する（ISNUMBER関数で一括チェックできる）</li></ol>



<pre class="wp-block-code"><code>=SUMPRODUCT(1-ISNUMBER(B2:D4))    → 0なら全て数値、1以上なら非数値が混在</code></pre>



<p class="wp-block-paragraph">このチェック数式で非数値の混入を事前に確認してからMMULTを実行すると、エラーの原因を素早く特定できます。</p>



<h2 class="wp-block-heading"><span id="toc34">最小二乗法（線形回帰）への応用</span></h2>



<p class="wp-block-paragraph">MMULTとMINVERSE・TRANSPOSEを組み合わせると、回帰分析の核である <strong>最小二乗法（OLS）</strong> をExcelの数式だけで実装できます。OLS推定量は β = (X&#8217;X)⁻¹X&#8217;y という行列式で表され、これをそのまま数式に置き換えるだけです。</p>



<p class="wp-block-paragraph">たとえば売上（目的変数 y）を広告費と価格（説明変数）から予測したいとします。設計行列 X は「切片用の1の列・広告費の列・価格の列」の3列で作ります。サンプルが5件なら 5×3 の行列になります。</p>



<figure class="wp-block-table"><table><thead><tr><th>切片</th><th>広告費</th><th>価格</th></tr></thead><tbody><tr><td>1</td><td>50</td><td>300</td></tr><tr><td>1</td><td>80</td><td>280</td></tr><tr><td>1</td><td>60</td><td>310</td></tr><tr><td>1</td><td>100</td><td>260</td></tr><tr><td>1</td><td>70</td><td>290</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">切片の列を必ず先頭に置くのがポイントです。これを忘れると回帰直線が原点を通る前提になり、係数がずれます。設計行列 X を <code>A2:C6</code>、売上 y を <code>E2:E6</code> とすると、回帰係数は次の1本で求まります。</p>



<pre class="wp-block-code"><code>=MMULT(MMULT(MINVERSE(MMULT(TRANSPOSE(X), X)), TRANSPOSE(X)), y)</code></pre>



<p class="wp-block-paragraph">実際の範囲を当てはめると次のようになります。</p>



<pre class="wp-block-code"><code>=MMULT(MMULT(MINVERSE(MMULT(TRANSPOSE(A2:C6), A2:C6)), TRANSPOSE(A2:C6)), E2:E6)</code></pre>



<p class="wp-block-paragraph">結果は3行のスピルで、上から「切片・広告費の係数・価格の係数」が返されます。</p>



<p class="wp-block-paragraph">同じ係数は <a href="https://mashukabu.com/excel-function-howto-use-linest/">LINEST関数</a> でも一発で取得できます。実務で結果だけ欲しいならLINESTが手軽です。一方MMULT版は X&#8217;X（情報行列）やその逆行列といった中間行列を別セルに展開して確認できるため、計算過程を理解したいときや独自にカスタマイズしたいときに向いています。</p>



<pre class="wp-block-code"><code>' 中間行列を確認する例
G1: =MMULT(TRANSPOSE(A2:C6), A2:C6)   ← X'X（3×3）
G5: =MINVERSE(G1#)                    ← (X'X)⁻¹</code></pre>



<p class="wp-block-paragraph">LINESTがブラックボックスなのに対し、MMULT版は各ステップが見える「ガラス張りの回帰」と言えます。</p>



<h2 class="wp-block-heading"><span id="toc35">SEQUENCE関数で単位行列を作成・逆行列を検証する</span></h2>



<p class="wp-block-paragraph">Microsoft 365 の <a href="https://mashukabu.com/excel-function-howto-use-sequence/">SEQUENCE関数</a> を使うと、任意サイズの <strong>単位行列</strong>（対角成分が1、それ以外が0の正方行列）を数式1本で作れます。</p>



<pre class="wp-block-code"><code>=IF(SEQUENCE(n,,1,0)=TRANSPOSE(SEQUENCE(n,,1,0)), 1, 0)</code></pre>



<p class="wp-block-paragraph">縦方向の連番と横方向の連番が一致するセル（=対角線）だけ1になる仕組みです。<code>n</code> に3を入れると次の3×3単位行列がスピルします。</p>



<figure class="wp-block-table"><table><thead><tr><th>1</th><th>0</th><th>0</th></tr></thead><tbody><tr><td>0</td><td>1</td><td>0</td></tr><tr><td>0</td><td>0</td><td>1</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">これはMINVERSEの検証に役立ちます。理論上、行列とその逆行列の積は単位行列になるため、次の数式で逆行列が正しく求まっているか確認できます。</p>



<pre class="wp-block-code"><code>=MMULT(A1:C3, MINVERSE(A1:C3))    ← 単位行列に近づけば逆行列は正常</code></pre>



<p class="wp-block-paragraph">ただし結果は浮動小数点演算のため、対角成分が「0.9999999」、非対角成分が「1.2E-16」のようにわずかな誤差を含むことがあります。完全な0・1にならなくても計算は正常なので、<code>=ROUND(結果, 10)</code> で丸めて確認すると判断しやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc36">BYROW・MAKEARRAY との組み合わせ（Microsoft 365 専用）</span></h2>



<p class="wp-block-paragraph">Microsoft 365 のラムダ系関数 <a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW関数</a> や <a href="https://mashukabu.com/excel-function-howto-use-makearray/">MAKEARRAY関数</a> とMMULTを組み合わせると、より柔軟な行列処理が書けます。</p>



<p class="wp-block-paragraph">BYROWは各行に同じ処理を適用する関数です。各行と固定の重みベクトル <code>weights</code>（縦ベクトル）の内積を行ごとに計算するなら、次のように書けます。</p>



<pre class="wp-block-code"><code>=BYROW(B2:D10, LAMBDA(row, MMULT(row, weights)))</code></pre>



<p class="wp-block-paragraph">ただしこの計算は <code>=MMULT(B2:D10, weights)</code> という1本のMMULTでも同じ結果が得られ、しかもこちらの方が高速です。BYROWは「行ごとに条件分岐したい」など内積以外の処理を挟むときに価値が出ます。</p>



<p class="wp-block-paragraph">MAKEARRAYは行番号・列番号から要素を生成する関数で、テスト用の行列をその場で作るのに便利です。たとえば数値計算で逆行列が不安定になる例として有名なヒルベルト行列（要素が 1/(r+c-1)）は次のように生成できます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(3, 3, LAMBDA(r,c, 1/(r+c-1)))</code></pre>



<p class="wp-block-paragraph">生成したヒルベルト行列をMMULTやMINVERSEに渡せば、悪条件行列での誤差の出方を手軽に検証できます。</p>



<h2 class="wp-block-heading"><span id="toc37">FILTER 関数と組み合わせた条件付き行列計算（Microsoft 365）</span></h2>



<p class="wp-block-paragraph">Microsoft 365 の <a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER関数</a> を使うと、条件に合う行だけを抽出してから MMULT に渡すことができます。「特定の部署・商品カテゴリ・期間だけを対象に行列計算したい」というときに役立ちます。</p>



<p class="wp-block-paragraph"><strong>例：特定部署の社員だけ加重評価スコアを算出する</strong></p>



<p class="wp-block-paragraph">A列に部署名、C〜E列に評価スコア（業績・スキル・行動指針）、G2:G4 に縦ベクトルの重み（0.5 / 0.3 / 0.2）が入っているとします。「営業部門だけ」の加重スコアを求めるには次のように書きます。</p>



<pre class="wp-block-code"><code>=MMULT(FILTER(C2:E10, A2:A10=&quot;営業&quot;), G2:G4)</code></pre>



<p class="wp-block-paragraph">FILTER で抽出した「営業部門の社員×3列」の部分行列にそのまま MMULT を掛けるだけで、営業部門の全社員の加重スコアが縦方向にスピルします。部署名を変えれば別部門に即対応でき、対象人数が増えても数式を書き直す必要がありません。</p>



<p class="wp-block-paragraph">対象者が0人のときの <code>#CALC!</code> エラーを防ぎたい場合は IFERROR でラップします。</p>



<pre class="wp-block-code"><code>=IFERROR(MMULT(FILTER(C2:E10, A2:A10=&quot;営業&quot;), G2:G4), &quot;対象者なし&quot;)</code></pre>



<p class="wp-block-paragraph">同じパターンは「特定の商品カテゴリだけ売上集計したい」「選択した期間だけ原価計算したい」など、フィルター後の部分行列に対して行列演算したい場面全般に応用できます。</p>



<h2 class="wp-block-heading"><span id="toc38">Power Query / Power Pivot とMMULTの使い分け</span></h2>



<p class="wp-block-paragraph">データが数千行を超えてくると「MMULTのままでいいのか、Power QueryやPower Pivotに移したほうがいいのか」と迷う場面が出てきます。実務で迷ったときの判断軸を整理しておきます。</p>



<h3 class="wp-block-heading"><span id="toc39">判断のものさし</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>観点</th><th>MMULT が向いている</th><th>Power Query / Power Pivot が向いている</th></tr></thead><tbody><tr><td>必要な計算</td><td>行列の積そのもの（連立方程式・回帰係数・加重スコア）</td><td>SUM・AVERAGE・COUNTで分解できるピボット型集計</td></tr><tr><td>データ件数</td><td>数十〜数百行が中心</td><td>数千〜数百万行</td></tr><tr><td>集計の更新頻度</td><td>シートを開いたら即時計算したい</td><td>元データ更新後に「更新ボタン」で取り込む運用でOK</td></tr><tr><td>シートの共有相手</td><td>Excelに慣れた担当者・自分専用</td><td>非エンジニアでも触れるダッシュボードにしたい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「商品×店舗の売上合計を一覧で出すだけ」なら、Power Queryでクエリを作っておいたほうが保守しやすいケースが多いです。一方で「重み付き評価」「連立方程式の解」「最小二乗法の係数」など、行列演算そのものが目的なら、MMULTのままが最速・最短です。</p>



<h3 class="wp-block-heading"><span id="toc40">MMULTからPower Queryに移すサイン</span></h3>



<p class="wp-block-paragraph">次のような兆候が出てきたら、Power Query や Power Pivot への切り替えを検討してみてください。</p>



<ul class="wp-block-list"><li>MMULTを含むシートを開くだけで体感で重い（再計算に数秒以上かかる）</li><li>元データが別ファイル・別システムからの取り込みで、毎回コピペしている</li><li>計算式が10段以上ネストして、誰も触れなくなりつつある</li><li>集計の単位（店舗別・月別・カテゴリ別）を頻繁に切り替えたい</li></ul>



<p class="wp-block-paragraph">逆に、上記が無ければMMULTで戦い続けるほうがメンテも軽く、シート1枚で完結する分かりやすさがあります。「MMULTで限界を感じてから移行する」くらいの感覚でちょうどよいでしょう。</p>



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



<p class="wp-block-paragraph">MMULT関数のポイントをまとめます。</p>



<ul class="wp-block-list"><li><strong>構文</strong>: <code>=MMULT(配列1, 配列2)</code> で行列の積を計算する</li><li><strong>条件</strong>: 配列1の列数と配列2の行数が一致していること（m×n と n×p の形）</li><li><strong>スピル</strong>: Excel 2019以降はスピルで自動展開。旧Excelで使っていたCSE配列数式（Ctrl+Shift+Enter）からの移行も容易</li><li><strong>連立方程式</strong>: <code>=MMULT(MINVERSE(係数行列), 右辺ベクトル)</code> で解ける</li><li><strong>実務活用</strong>: 複数商品×複数店舗の売上合計、重み付き平均、加重スコア算出などに使える</li><li><strong>エラー</strong>: 次元の不一致と非数値の混入が主な原因</li></ul>



<p class="wp-block-paragraph">MMULT関数は少し数学的な背景が必要ですが、「複数の掛け算の合計を一括で求める」というシンプルな使い方から始めると理解しやすいです。慣れてくると、SUMPRODUCT関数よりもすっきりした数式で複雑な集計を組めるようになりますよ。</p>



<h2 class="wp-block-heading"><span id="toc42">注意事項と使い上のポイント</span></h2>



<h3 class="wp-block-heading"><span id="toc43">大きな行列では処理速度に注意</span></h3>



<p class="wp-block-paragraph">MMULT関数は行列全体を一括計算するため、非常に大きな配列（数百行×数百列）を扱うと計算に時間がかかることがあります。通常の業務データなら問題になりません（数十〜百行程度なら即時計算）が、数千行以上のデータを何十回もMMULTに渡すようなシートでは、揮発性の関数（TODAY、INDIRECT、OFFSETなど）の使用を避けて再計算を最小限に抑えるとパフォーマンスが改善します。</p>



<h3 class="wp-block-heading"><span id="toc44">数式を保護する場合はセルのロックを活用する</span></h3>



<p class="wp-block-paragraph">スピルで展開された結果セルは「スピル参照（#演算子）」でアクセスできます。</p>



<pre class="wp-block-code"><code>=C1#    ← C1にMMULTの数式があれば、スピル全体を参照する</code></pre>



<p class="wp-block-paragraph">スピル展開先のセルを誤って上書きすることを防ぐには、スピル元のセルだけを編集可能にして残りをロックする方法が有効です。シートを他の人と共有する場合に設定しておくと安心です。</p>



<h3 class="wp-block-heading"><span id="toc45">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-minverse/">MINVERSE関数の使い方｜逆行列を計算する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-mdeterm/">MDETERM関数の使い方｜行列式を計算する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-transpose/">TRANSPOSE関数の使い方｜行と列を入れ替える</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT関数の使い方｜配列の積の合計を求める</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-mmult/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのTREND関数の使い方｜売上予測を自動計算する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-trend/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-trend/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 20 Oct 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[FORECAST.LINEAR]]></category>
		<category><![CDATA[TREND関数]]></category>
		<category><![CDATA[売上予測]]></category>
		<category><![CDATA[線形回帰]]></category>
		<category><![CDATA[配列数式]]></category>
		<category><![CDATA[重回帰分析]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2498</guid>

					<description><![CDATA[ExcelのTREND関数の使い方を基本構文から実務活用まで解説。月別売上の予測（単回帰）、複数要因からの予測（重回帰）、RSQ関数での精度確認、FORECAST.LINEARや予測シートとの違いまで網羅します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「来期の売上を予測してほしい」と頼まれたことはありませんか。過去の実績をもとに将来の数値を見積もる作業は、手計算では大変です。ExcelのTREND関数を使えば、線形回帰の計算を自動化できます。</p>



<p class="wp-block-paragraph">この記事では、TREND関数の基本から重回帰分析まで解説します。実務で使える手順をまとめました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">TREND関数とは？線形回帰で予測値を返す関数</a><ol><li><a href="#toc2" tabindex="0">TREND関数の読み方</a></li><li><a href="#toc3" tabindex="0">TREND関数でできること</a></li></ol></li><li><a href="#toc4" tabindex="0">TREND関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">第1引数：既知のy</a></li><li><a href="#toc6" tabindex="0">第2引数：既知のx</a></li><li><a href="#toc7" tabindex="0">第3引数：新しいx</a></li><li><a href="#toc8" tabindex="0">第4引数：定数</a></li></ol></li><li><a href="#toc9" tabindex="0">TREND関数の基本の使い方｜月別売上から来期を予測する</a><ol><li><a href="#toc10" tabindex="0">サンプルデータと完成イメージ</a></li><li><a href="#toc11" tabindex="0">TREND関数の入力手順</a></li><li><a href="#toc12" tabindex="0">配列数式の注意点</a></li></ol></li><li><a href="#toc13" tabindex="0">TREND関数を実務で使う｜広告費と気温から売上を予測する（重回帰）</a><ol><li><a href="#toc14" tabindex="0">複数の説明変数を指定する方法</a></li><li><a href="#toc15" tabindex="0">重回帰の入力手順と結果の読み方</a></li></ol></li><li><a href="#toc16" tabindex="0">予測の精度を確認する｜RSQ関数でR²をチェック</a><ol><li><a href="#toc17" tabindex="0">R²（決定係数）の目安</a></li><li><a href="#toc18" tabindex="0">R²が低いときの対処法</a></li></ol></li><li><a href="#toc19" tabindex="0">TREND関数・FORECAST.LINEAR関数・予測シートの違い</a><ol><li><a href="#toc20" tabindex="0">どれを使うべきか？場面別の選び方</a></li></ol></li><li><a href="#toc21" tabindex="0">TREND関数でエラーが出るときの対処法</a><ol><li><a href="#toc22" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc23" tabindex="0">#REF! エラー</a></li><li><a href="#toc24" tabindex="0">#N/A・#SPILL! エラー</a></li></ol></li><li><a href="#toc25" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">TREND関数とは？線形回帰で予測値を返す関数</span></h2>



<p class="wp-block-paragraph">TREND関数は、過去のデータをもとに将来の値を予測する関数です。内部的には「最小二乗法」という統計手法を使います。最小二乗法とは、データの傾向を最もよく表す直線を求める計算方法のことです。</p>



<p class="wp-block-paragraph">たとえば過去12か月の売上データがあるとします。TREND関数はそのデータから傾向線（トレンドライン）を引きます。その直線を延長することで、13か月目以降の売上を予測できます。</p>



<h3 class="wp-block-heading"><span id="toc2">TREND関数の読み方</span></h3>



<p class="wp-block-paragraph">読み方は「トレンド」です。英語の &#8220;trend&#8221;（傾向・推移）が語源です。</p>



<h3 class="wp-block-heading"><span id="toc3">TREND関数でできること</span></h3>



<p class="wp-block-paragraph">TREND関数でできることは、大きく3つあります。</p>



<ul class="wp-block-list"><li>過去の時系列データから将来の値を予測する</li><li>複数の要因（広告費・気温など）から売上を予測する（重回帰）</li><li>複数の予測値を配列でまとめて返す</li></ul>



<p class="wp-block-paragraph">1つの要因だけでなく、複数の要因を組み合わせた予測ができる点がTREND関数の強みです。</p>



<h2 class="wp-block-heading"><span id="toc4">TREND関数の構文と引数</span></h2>



<p class="wp-block-paragraph">基本構文は次のとおりです。対応バージョンはExcel 2016以降（Microsoft 365対応）です。</p>



<pre class="wp-block-code"><code>=TREND(既知のy, [既知のx], [新しいx], [定数])</code></pre>



<p class="wp-block-paragraph"><code>[]</code> 内の引数は省略できます。必須の引数は「既知のy」だけです。</p>



<p class="wp-block-paragraph">各引数の役割を表にまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>既知のy</td><td>必須</td><td>実績データ（売上など予測したい数値）</td></tr><tr><td>既知のx</td><td>省略可</td><td>実績に対応する説明変数（月番号など）。省略時は {1,2,3,&#8230;} が自動設定される</td></tr><tr><td>新しいx</td><td>省略可</td><td>予測したい期間の説明変数。省略時は既知のxと同じ値が使われる</td></tr><tr><td>定数</td><td>省略可</td><td>TRUE（既定）で切片を計算する。FALSEで切片を0にする</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">第1引数：既知のy</span></h3>



<p class="wp-block-paragraph">「既知のy」には、すでにわかっている実績データを指定します。たとえば、過去6か月の売上金額が入ったセル範囲です。</p>



<h3 class="wp-block-heading"><span id="toc6">第2引数：既知のx</span></h3>



<p class="wp-block-paragraph">「既知のx」には、実績に対応する説明変数を指定します。月番号や年度など、yの値に対応する数値です。省略すると {1,2,3,&#8230;} が自動で割り当てられます。</p>



<h3 class="wp-block-heading"><span id="toc7">第3引数：新しいx</span></h3>



<p class="wp-block-paragraph">「新しいx」には、予測を出したい地点の値を指定します。たとえば7か月目〜9か月目の売上を知りたい場合です。{7,8,9} に相当するセルを指定します。</p>



<h3 class="wp-block-heading"><span id="toc8">第4引数：定数</span></h3>



<p class="wp-block-paragraph">通常はTRUE（既定値）のままで問題ありません。FALSEにすると、回帰直線が原点を通るように計算されます。特殊なケースを除き、変更する必要はありません。</p>



<h2 class="wp-block-heading"><span id="toc9">TREND関数の基本の使い方｜月別売上から来期を予測する</span></h2>



<p class="wp-block-paragraph">ここでは、6か月分の売上データから7〜9か月目の売上を予測する手順を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc10">サンプルデータと完成イメージ</span></h3>



<p class="wp-block-paragraph">次のようなデータを用意してください。</p>



<ul class="wp-block-list"><li>A列（月番号）：1〜6</li><li>B列（売上）：150, 180, 210, 195, 240, 260</li><li>A9:A11に予測したい月番号：7, 8, 9</li></ul>



<p class="wp-block-paragraph">B9:B11に予測結果を出力します。</p>



<h3 class="wp-block-heading"><span id="toc11">TREND関数の入力手順</span></h3>



<p class="wp-block-paragraph">Excel 2021 / Microsoft 365の場合、先頭セルに数式を入力するだけで結果がスピル（自動展開）します。</p>



<p class="wp-block-paragraph">B9セルに次の数式を入力してください。</p>



<pre class="wp-block-code"><code>=TREND(B2:B7, A2:A7, A9:A11)</code></pre>



<p class="wp-block-paragraph">Enterキーを押すと、B9:B11に予測値が一括で表示されます。</p>



<h3 class="wp-block-heading"><span id="toc12">配列数式の注意点</span></h3>



<p class="wp-block-paragraph">Excel 2019以前のバージョンでは、スピル機能がありません。配列数式として入力する必要があります。手順は次のとおりです。</p>



<ol class="wp-block-list"><li>出力先のセル範囲（B9:B11）をあらかじめ選択する</li><li>数式バーにTREND関数を入力する</li><li><strong>Ctrl + Shift + Enter</strong> で確定する</li></ol>



<p class="wp-block-paragraph">数式バーに <code>{=TREND(...)}</code> と中カッコが表示されれば成功です。この中カッコは手入力しないでください。Excelが自動で付与します。</p>



<h2 class="wp-block-heading"><span id="toc13">TREND関数を実務で使う｜広告費と気温から売上を予測する（重回帰）</span></h2>



<p class="wp-block-paragraph">TREND関数は、複数の説明変数を使った重回帰分析にも対応しています。重回帰分析とは、要因を2つ以上考慮する分析手法です。</p>



<h3 class="wp-block-heading"><span id="toc14">複数の説明変数を指定する方法</span></h3>



<p class="wp-block-paragraph">たとえば「広告費」と「平均気温」の2つから売上を予測するケースを考えます。データの配置は次のとおりです。</p>



<ul class="wp-block-list"><li>A列：広告費（万円）</li><li>B列：平均気温（℃）</li><li>C列：売上（万円）</li></ul>



<p class="wp-block-paragraph">このとき、既知のxには複数列をまとめて指定します。</p>



<pre class="wp-block-code"><code>=TREND(C2:C13, A2:B13, A14:B16)</code></pre>



<p class="wp-block-paragraph">ポイントは、既知のxに <code>A2:B13</code> のように2列を指定することです。これだけで重回帰分析が実行されます。</p>



<h3 class="wp-block-heading"><span id="toc15">重回帰の入力手順と結果の読み方</span></h3>



<ol class="wp-block-list"><li>予測先のセル（C14など）を選択する</li><li>上記の数式を入力する</li><li>Enterキーで確定する（Excel 2021以降）</li></ol>



<p class="wp-block-paragraph">結果は「広告費と気温の両方を考慮した予測売上」です。単一の要因だけを見るより精度が上がることが多いです。ただし、説明変数を増やしすぎると過学習のリスクがあります。実務では2〜3個の変数にとどめるのがおすすめです。</p>



<h2 class="wp-block-heading"><span id="toc16">予測の精度を確認する｜RSQ関数でR²をチェック</span></h2>



<p class="wp-block-paragraph">TREND関数で予測値を出したら、その予測がどれくらい信頼できるかを確認しましょう。<a href="https://mashukabu.com/excel-function-howto-use-rsq/">RSQ関数</a>を使うと、決定係数（R²）を求められます。</p>



<pre class="wp-block-code"><code>=RSQ(C2:C13, A2:A13)</code></pre>



<p class="wp-block-paragraph">R²は0〜1の値を取ります。1に近いほど予測精度が高いことを示します。</p>



<h3 class="wp-block-heading"><span id="toc17">R²（決定係数）の目安</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>R²の範囲</th><th>評価</th><th>実務での判断</th></tr></thead><tbody><tr><td>0.8〜1.0</td><td>高い</td><td>そのまま予測に使える</td></tr><tr><td>0.6〜0.8</td><td>中程度</td><td>実用レベル。傾向の把握に使える</td></tr><tr><td>0.4〜0.6</td><td>低め</td><td>参考値として扱う</td></tr><tr><td>0.2未満</td><td>不十分</td><td>予測モデルの見直しが必要</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">R²が低いときの対処法</span></h3>



<p class="wp-block-paragraph">R²が低い場合は、次の3つを試してみてください。</p>



<ul class="wp-block-list"><li><strong>説明変数を追加する</strong>: 売上に影響する別の要因（季節・曜日など）を加える</li><li><strong>外れ値を確認する</strong>: 異常値がデータに含まれていないかチェックする</li><li><strong>非線形の可能性を検討する</strong>: データが直線的でない場合は<a href="https://mashukabu.com/excel-function-howto-use-growth/">GROWTH関数</a>（指数回帰）を試す</li></ul>



<h2 class="wp-block-heading"><span id="toc19">TREND関数・FORECAST.LINEAR関数・予測シートの違い</span></h2>



<p class="wp-block-paragraph">Excelには予測のための手段が複数あります。それぞれの特徴を比較表にまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>TREND関数</th><th>FORECAST.LINEAR関数</th><th>予測シート</th></tr></thead><tbody><tr><td>予測モデル</td><td>線形回帰</td><td>線形回帰</td><td>指数平滑法（ETS）</td></tr><tr><td>戻り値</td><td>配列（複数セル）</td><td>単一値（1セル）</td><td>ワークシート＋グラフ</td></tr><tr><td>重回帰</td><td>対応</td><td>非対応</td><td>非対応</td></tr><tr><td>季節性の検出</td><td>非対応</td><td>非対応</td><td>自動検出</td></tr><tr><td>信頼区間</td><td>なし</td><td>なし</td><td>あり</td></tr><tr><td>対応バージョン</td><td>Excel 2016以降</td><td>Excel 2016以降</td><td>Excel 2016以降</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc20">どれを使うべきか？場面別の選び方</span></h3>



<ul class="wp-block-list"><li><strong>複数月の売上をまとめて予測したい</strong> → TREND関数</li><li><strong>特定の1点だけ予測したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-forecast-linear/">FORECAST.LINEAR関数</a></li><li><strong>季節変動のあるデータを予測したい</strong> → <a href="https://mashukabu.com/excel-function-howto-use-forecast-ets/">FORECAST.ETS関数</a>（予測シート）</li><li><strong>複数の要因から予測したい</strong> → TREND関数（重回帰）</li></ul>



<p class="wp-block-paragraph">迷ったらTREND関数を選べば、たいていの場面に対応できます。</p>



<h2 class="wp-block-heading"><span id="toc21">TREND関数でエラーが出るときの対処法</span></h2>



<p class="wp-block-paragraph">TREND関数で発生しやすいエラーと対処法を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc22">#VALUE! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 既知のyや既知のxに文字列や空白セルが含まれている。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: データ範囲に数値以外のセルが混じっていないか確認してください。空白セルがある場合は、0を入力するか範囲から除外します。</p>



<h3 class="wp-block-heading"><span id="toc23">#REF! エラー</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 既知のyと既知のxの行数（データ数）が一致していない。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: yとxのセル範囲の行数を揃えてください。たとえば、yが12行ならxも12行にします。</p>



<h3 class="wp-block-heading"><span id="toc24">#N/A・#SPILL! エラー</span></h3>



<p class="wp-block-paragraph"><strong>#N/A エラー</strong>の原因: CSE（Ctrl+Shift+Enter）入力時に、選択した出力範囲と新しいxの個数が一致していない。出力範囲の選択をやり直してください。</p>



<p class="wp-block-paragraph"><strong>#SPILL! エラー</strong>の原因: スピル先のセルにデータや数式が入っている。スピル先のセルを空にすれば解消します。Excel 2021以降で発生するエラーです。</p>



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



<p class="wp-block-paragraph">この記事では、TREND関数の基本から重回帰分析、予測精度の確認方法までを解説しました。</p>



<ul class="wp-block-list"><li>TREND関数は線形回帰で将来の値を予測する関数</li><li>複数の予測値を配列で一括出力できる</li><li>複数の要因を考慮した重回帰分析にも対応</li><li><a href="https://mashukabu.com/excel-function-howto-use-rsq/">RSQ関数</a>でR²を確認し、予測の信頼度をチェックする</li><li>1点だけの予測ならFORECAST.LINEAR、季節性があるなら予測シートを使う</li></ul>



<p class="wp-block-paragraph">売上予測や需要予測の場面で、ぜひ活用してみてください。</p>



<p class="wp-block-paragraph"><strong>関連記事</strong></p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-growth/">GROWTH関数の使い方（指数回帰で予測する方法）</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-forecast-linear/">FORECAST.LINEAR関数の使い方（線形予測で将来値を求める方法）</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-forecast-ets/">FORECAST.ETS関数の使い方（季節変動を含む売上予測の方法）</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-slope/">SLOPE関数で回帰直線の傾きを求める</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-intercept/">INTERCEPT関数で回帰直線の切片を求める</a></li><li><a href="https://mashukabu.com/spreadsheet-trend-function/">スプレッドシートのTREND関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-trend/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのGROWTH関数の使い方｜指数回帰で将来を予測する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-growth/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-growth/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 19 Oct 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[GROWTH関数]]></category>
		<category><![CDATA[予測]]></category>
		<category><![CDATA[指数回帰]]></category>
		<category><![CDATA[統計関数]]></category>
		<category><![CDATA[配列数式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2859</guid>

					<description><![CDATA[ExcelのGROWTH関数の使い方を基本構文から実務活用まで解説。指数回帰曲線による売上予測の方法、引数の設定、よくあるエラーの対処法、TREND関数・LOGEST関数との違いもわかりやすく紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「売上が右肩上がりに伸びているけど、来年はどのくらいになるんだろう？」と思ったことはありませんか。直線的ではなく、加速度的に増えていくデータの将来予測は、手計算だとなかなか大変ですよね。</p>



<p class="wp-block-paragraph">ExcelのGROWTH関数を使えば、指数回帰曲線（しすうかいききょくせん）をもとにした将来予測がかんたんにできます。この記事では、GROWTH関数の基本的な書き方から実務での活用例、よくあるエラーの対処法まで、まるごと解説していきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのGROWTH関数とは？</a></li><li><a href="#toc2" tabindex="0">ExcelでのGROWTH関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">GROWTH関数の基本的な使い方</a></li><li><a href="#toc6" tabindex="0">GROWTH関数の実践的な使い方・応用例</a><ol><li><a href="#toc7" tabindex="0">月次売上の来期予測</a></li><li><a href="#toc8" tabindex="0">既知のxを省略したシンプルな書き方</a></li><li><a href="#toc9" tabindex="0">LOGEST関数と組み合わせて成長率を確認する</a></li></ol></li><li><a href="#toc10" tabindex="0">GROWTH関数でよくあるエラーと対処法</a><ol><li><a href="#toc11" tabindex="0">#NUM! エラー</a></li><li><a href="#toc12" tabindex="0">#REF! エラー</a></li><li><a href="#toc13" tabindex="0">#VALUE! エラー</a></li></ol></li><li><a href="#toc14" tabindex="0">GROWTH関数と似た関数との違い・使い分け</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのGROWTH関数とは？</span></h2>



<p class="wp-block-paragraph">GROWTH関数は「グロース」と読みます。英語の「growth（成長）」が語源です。</p>



<p class="wp-block-paragraph">GROWTH関数は、既存のデータから<strong>指数回帰曲線</strong>を計算し、将来の値を予測する関数です。指数回帰曲線とは、データが「一定の割合で増え続ける（または減り続ける）」パターンにフィットする曲線のことですよ。</p>



<p class="wp-block-paragraph">たとえば、こんなデータに向いています。</p>



<ul class="wp-block-list"><li>年々加速して増えるWebサイトのアクセス数</li><li>倍々で伸びていくサービスの会員数</li><li>複利で増える投資の運用額</li></ul>



<p class="wp-block-paragraph">GROWTH関数の内部では <code>y = b * m^x</code> という指数モデルを使っています。bが初期値、mが成長率（倍率）、xが期間です。このモデルをもとに、新しいxに対するyの予測値を返してくれます。</p>



<h2 class="wp-block-heading"><span id="toc2">ExcelでのGROWTH関数の書き方（構文と引数）</span></h2>



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



<pre class="wp-block-code"><code>=GROWTH(既知のy, [既知のx], [新しいx], [定数])</code></pre>



<p class="wp-block-paragraph">GROWTH関数は<strong>配列数式</strong>として動作します。Excel 2021やMicrosoft 365では自動でスピル（結果が複数セルに展開）しますが、古いバージョンでは <code>Ctrl + Shift + Enter</code> で確定する必要があります。</p>



<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>既知のy</td><td>必須</td><td>既にわかっているyの値（正の数のみ）</td></tr><tr><td>既知のx</td><td>省略可</td><td>yに対応するxの値。省略すると {1,2,3,&#8230;} が使われる</td></tr><tr><td>新しいx</td><td>省略可</td><td>予測したい地点のxの値。省略すると既知のxと同じ値が使われる</td></tr><tr><td>定数</td><td>省略可</td><td>TRUE（既定）= bを計算する / FALSE = bを1に固定する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>既知のy</strong>には、過去の売上や利用者数など、予測のもとになるデータを指定します。0以下の値が含まれていると <code>#NUM!</code> エラーになるので注意してください。</p>



<p class="wp-block-paragraph"><strong>既知のx</strong>には、yに対応する時間軸（年度や月番号など）を指定します。省略すると {1, 2, 3, &#8230;} という連番が自動で割り当てられますよ。</p>



<p class="wp-block-paragraph"><strong>新しいx</strong>には、予測したい将来の時点を指定します。たとえば既知のxが1〜5年目なら、6〜8年目を指定すれば3年先まで予測できます。</p>



<p class="wp-block-paragraph"><strong>定数</strong>は、ほとんどの場合はTRUE（または省略）で問題ありません。FALSEにすると <code>y = m^x</code> というモデルになり、初期値bが1に固定されます。</p>



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



<p class="wp-block-paragraph">実際にGROWTH関数を使ってみましょう。あるサービスの年間利用者数（5年分）から、6年目以降を予測する例です。</p>



<p class="wp-block-paragraph"><strong>サンプルデータ</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>A列（年）</th><th>B列（利用者数）</th></tr></thead><tbody><tr><td>2行目</td><td>1</td><td>100</td></tr><tr><td>3行目</td><td>2</td><td>150</td></tr><tr><td>4行目</td><td>3</td><td>230</td></tr><tr><td>5行目</td><td>4</td><td>340</td></tr><tr><td>6行目</td><td>5</td><td>510</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">A8セルに「6」、A9セルに「7」、A10セルに「8」と入力しておきます。</p>



<p class="wp-block-paragraph">B8セルに次の数式を入力してください。</p>



<pre class="wp-block-code"><code>=GROWTH(B2:B6, A2:A6, A8:A10)</code></pre>



<p class="wp-block-paragraph">Excel 2021 / Microsoft 365では、B8セルに入力するだけでB8〜B10に結果がスピルします。古いバージョンでは、B8:B10を選択した状態で数式を入力し、<code>Ctrl + Shift + Enter</code> で確定してください。</p>



<p class="wp-block-paragraph">6年目は約760、7年目は約1,130、8年目は約1,690のように、指数的な成長カーブに沿った予測値が得られます。</p>



<p class="wp-block-paragraph">ポイントは「既知のx」と「新しいx」の単位を揃えることです。年で指定しているなら、新しいxも年で指定してくださいね。</p>



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



<h3 class="wp-block-heading"><span id="toc7">月次売上の来期予測</span></h3>



<p class="wp-block-paragraph">月次の売上データ（12か月分）から、翌月以降の売上を予測するケースです。</p>



<p class="wp-block-paragraph">A列に月番号（1〜12）、B列に売上が入っているとします。13〜15月目（翌期3か月分）を予測するには、次のように書きます。</p>



<pre class="wp-block-code"><code>=GROWTH(B2:B13, A2:A13, {13,14,15})</code></pre>



<p class="wp-block-paragraph">新しいxは、セル参照の代わりに <code>{13,14,15}</code> のような配列定数を直接書くこともできますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">既知のxを省略したシンプルな書き方</span></h3>



<p class="wp-block-paragraph">データが1, 2, 3, &#8230; と等間隔で並んでいるなら、既知のxは省略できます。</p>



<pre class="wp-block-code"><code>=GROWTH(B2:B6, , A8:A10)</code></pre>



<p class="wp-block-paragraph">2番目の引数の位置にカンマだけ置いて省略します。データが連番の場合はこちらのほうがスッキリしますね。</p>



<h3 class="wp-block-heading"><span id="toc9">LOGEST関数と組み合わせて成長率を確認する</span></h3>



<p class="wp-block-paragraph">GROWTH関数で予測値を出したら、<a href="https://mashukabu.com/excel-function-howto-use-logest/">LOGEST関数</a>を使って成長率（倍率m）と初期値bを確認するのがおすすめです。</p>



<pre class="wp-block-code"><code>=LOGEST(B2:B6, A2:A6)</code></pre>



<p class="wp-block-paragraph">LOGEST関数は指数回帰の係数（m と b）を返します。たとえばmが1.5なら「毎期50%ずつ成長している」ということがわかりますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc11">#NUM! エラー</span></h3>



<p class="wp-block-paragraph">「既知のy」に0以下の値が含まれていると発生します。GROWTH関数は内部で対数計算を行うため、0やマイナスの値は処理できません。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: データに0やマイナスがないか確認してください。欠損値が0になっている場合は、前後の平均値で補完するなどの工夫が必要です。</p>



<h3 class="wp-block-heading"><span id="toc12">#REF! エラー</span></h3>



<p class="wp-block-paragraph">「既知のy」と「既知のx」のサイズが一致しない場合に発生します。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 両方の範囲の行数（または列数）が同じになっているか確認してください。たとえば既知のyが5行なら、既知のxも5行にする必要がありますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">#VALUE! エラー</span></h3>



<p class="wp-block-paragraph">引数に数値以外のデータ（文字列や空白セル）が含まれている場合に発生します。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 範囲内にテキストや空白が混入していないかチェックしてください。セルの表示形式が「文字列」になっている数値もエラーの原因になります。</p>



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



<p class="wp-block-paragraph">GROWTH関数と混同しやすい関数を整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>回帰モデル</th><th>返すもの</th><th>使いどころ</th></tr></thead><tbody><tr><td>GROWTH</td><td>指数（y = b * m^x）</td><td>予測値</td><td>加速度的に増減するデータの予測</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-trend/">TREND</a></td><td>線形（y = a + bx）</td><td>予測値</td><td>一定ペースで増減するデータの予測</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-logest/">LOGEST</a></td><td>指数（y = b * m^x）</td><td>係数（m, b）</td><td>指数回帰の成長率・初期値を知りたいとき</td></tr><tr><td>LINEST</td><td>線形（y = a + bx）</td><td>係数（a, b）</td><td>線形回帰の傾き・切片を知りたいとき</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>GROWTH関数とTREND関数の使い分け</strong>がもっとも重要です。データをグラフにしたとき、直線的に伸びているならTREND関数、カーブを描いて加速しているならGROWTH関数を選んでください。</p>



<p class="wp-block-paragraph">迷ったときは、<a href="https://mashukabu.com/excel-function-howto-use-exp/">EXP関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-ln/">LN関数</a>でデータを対数変換してみるのも手です。対数をとったあとのデータが直線的に並ぶなら、指数回帰（GROWTH関数）がフィットしている証拠ですよ。</p>



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



<p class="wp-block-paragraph">ExcelのGROWTH関数は、指数回帰曲線を使ってデータの将来予測ができる関数です。</p>



<p class="wp-block-paragraph">この記事のポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>GROWTH関数は <code>y = b * m^x</code> の指数モデルで予測する</li><li>必須の引数は「既知のy」だけ。残りは省略可能</li><li>配列数式として入力する（Microsoft 365ではスピル対応）</li><li>0以下のデータが含まれると <code>#NUM!</code> エラーになる</li><li>直線的なデータには<a href="https://mashukabu.com/excel-function-howto-use-trend/">TREND関数</a>、指数的なデータにはGROWTH関数と使い分ける</li><li><a href="https://mashukabu.com/excel-function-howto-use-logest/">LOGEST関数</a>と組み合わせれば、成長率も確認できる</li></ul>



<p class="wp-block-paragraph">売上やアクセス数の予測をしたいときに、ぜひ活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-growth/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
