近似直線の式をセルで使って予測値を求める方法|SLOPE・INTERCEPT・FORECAST.LINEAR・TREND

散布図に近似直線を引いて「y = 6.5247x + 52.912」のような式が出ても、その式をセルの計算にそのまま使うことはできません。結論から言うと、グラフの式を手で打ち直さなくても、SLOPE関数とINTERCEPT関数、またはFORECAST.LINEAR関数・TREND関数を使えば、同じ近似直線の式でセルの中で予測値を求められます。近似直線の式(y=ax+b)の考え方は近似直線をy=ax+bの式で表す方法|エクセルグラフで解説しているので、この記事ではその続きとして、実際に「来月の売上はいくらか」を数式で出す手順を紹介します。

目次

近似直線の式をセルで使って予測値を求める例

次のような、月ごとの広告費と売上のデータ(A1:C9)があるとします。単位はどちらも万円です。

A(月) B(広告費) C(売上)
2 4月 10 118
3 5月 12 131
4 6月 15 152
5 7月 18 170
6 8月 20 186
7 9月 22 193
8 10月 25 214
9 11月 28 238

広告費を増やすほど売上も増えている様子です。ここから、来月の広告費を30万円にしたらいくらの売上が見込めるかを計算します。以降の数式では、B列=広告費(x)、C列=売上(y)、E2=来月の広告費(30を入力)という対応で説明します。

SLOPE関数とINTERCEPT関数で傾きと切片を求める方法

近似直線の式 y=ax+b の「a(傾き)」を求めるのがSLOPE関数、「b(切片)」を求めるのがINTERCEPT関数です。どちらも先に売上(y)の範囲、次に広告費(x)の範囲の順に指定します。

傾き(a): =SLOPE(C2:C9,B2:B9)
切片(b): =INTERCEPT(C2:C9,B2:B9)

結果は、傾きが6.5247(約6.52)、切片が52.9122(約52.91)です。「広告費を1万円増やすと、売上が約6.52万円増える」という意味で、グラフに表示される式と同じ値です。

この2つを使えば、E2の広告費30万円のときの売上予測は y=ax+b の形でそのまま書けます。B列=広告費、C列=売上、E2=来月の広告費です。

=SLOPE(C2:C9,B2:B9)*E2+INTERCEPT(C2:C9,B2:B9)

結果は248.65…、つまり約248.7万円です。「傾き×広告費+切片」を1つのセルで計算した、という意味の数式です。

FORECAST.LINEAR関数で予測値を1つの関数で求める方法

傾きと切片を別々に出さなくても、FORECAST.LINEAR関数なら予測値が1回で求まります。引数の順番は予測したいx、yの範囲、xの範囲です。SLOPEやINTERCEPTとは「x」が先頭に加わる点に注意してください。

=FORECAST.LINEAR(E2,C2:C9,B2:B9)

E2=来月の広告費(30)、C列=売上、B列=広告費として計算すると、結果は先ほどと同じ248.65…(約248.7万円)になります。FORECAST.LINEARはExcel 2016以降とMicrosoft 365で使えます。それ以前のバージョンでは、同じ引数の並びで=FORECAST(E2,C2:C9,B2:B9)と書きます(古い名前の関数で、現在のExcelでも使えます)。

TREND関数で複数の予測値をまとめて求める方法

広告費が30・32・35万円の3パターンの売上を一度に出したいときは、TREND関数が便利です。引数の順番はyの範囲、xの範囲、予測したいxで、FORECAST.LINEARとは並びが違います。E2:E4に30・32・35を入力し、F2に次の数式を入れます。B列=広告費、C列=売上です。

=TREND($C$2:$C$9,$B$2:$B$9,E2:E4)

Microsoft 365やExcel 2021では、F2に入力するだけでF2:F4に結果が自動で並びます(スピル)。Excel 2019以前では、F2:F4を範囲選択して数式を入力し、Ctrl+Shift+Enterで確定します。

E(広告費) F(売上予測)
30 248.7
32 261.7
35 281.3

表の値は小数第2位を四捨五入して表示しています。3つの関数はどれも同じ最小二乗法の直線を使うため、結果は一致します。「傾きや切片も見たい」ならSLOPEとINTERCEPT、「予測値だけ欲しい」ならFORECAST.LINEARかTREND、と使い分けると分かりやすいです。

RSQ関数で近似直線の当てはまりを確かめる方法

予測を使う前に、直線がデータにどれくらい合っているかを確かめましょう。決定係数(R²)を返すRSQ関数を使います。引数の順番はSLOPEと同じで、yの範囲、xの範囲です。

=RSQ(C2:C9,B2:B9)

結果は0.9974です。R²は0〜1の値で、1に近いほど直線がデータによく当てはまっていることを示します。今回は広告費の増減で売上のばらつきのほぼすべてを説明できる直線、ということになります。ただし、R²が高くても「広告費が原因で売上が増えた」とは限らない点には注意が必要です(次の注意点で触れます)。

近似直線で予測するときのよくある注意点

  • 引数の順番を間違えやすい: SLOPE・INTERCEPT・RSQ・TREND は「y、x」の順、FORECAST.LINEARは「予測したいx、y、x」の順です。範囲の行数が同じなら、順番を逆にしてもエラーにならず、まったく別の値が返ってきます。グラフの式と一致するか、一度は見比べましょう。
  • xとyの範囲の行数がそろっていないと#N/Aになる: 片方だけ1行長く選択していると#N/Aが出ます。原因の見つけ方は#N/Aエラーが出る原因と対処法(VLOOKUP編)を参考にしてください。
  • 空白や文字列のセルは無視され、0は計算に含まれる: データが未入力の月を「0」と入力すると、直線がその0に引っ張られて傾きが変わります。未入力のセルは空白のままにします。
  • データの範囲から遠く離れた値は当てにならない: 今回のデータは広告費10〜28万円の範囲です。例えば広告費を100万円にした場合、式の上では約705万円と計算されますが、そこまで増やしても同じ比率で売上が伸びる保証はありません。予測はデータのある範囲の近くで使うのが基本です。
  • 相関があっても原因とは限らない: 広告費と売上が同時に増えていても、実際には繁忙期だから両方増えただけ、という場合もあります。予測は「目安」として使い、季節要因や単価の変化なども合わせて判断します。
  • グラフの式を手入力しない: グラフに表示される式は桁数が丸められていることがあり、手で打ち直すと予測値がわずかにずれます。セルで計算する場合は、SLOPE・INTERCEPT・FORECAST.LINEAR・TRENDを使いましょう。

近似直線の式で予測値を求める方法のまとめ

グラフの近似直線と同じ式は、SLOPE関数(傾き)とINTERCEPT関数(切片)で取り出せます。予測値だけが欲しいときは、=FORECAST.LINEAR(予測したいx,yの範囲,xの範囲)が最も手軽で、複数の値をまとめて出すなら=TREND(yの範囲,xの範囲,予測したいx)です。予測の前にはRSQ関数で当てはまりを確かめ、データの範囲を大きく外れた値には使わないようにしましょう。

実務では、販売数量と売上高、広告費と売上のように「継続して記録している2つの数値」があれば、同じ手順で予測できます。条件で絞り込んだ集計を組み合わせたいときは、サイトの人気記事エクセル関数で条件付きで中央値(MEDIAN)を計算する方法もあわせてご覧ください。また、近似直線を使った実務の分析例としてエクセルで損益分岐点を簡単に分析する方法|無料ダウンロードあり、データを並べて「どこから手を付けるか」を決める使いこなせてる?パレート図で学ぶ絶対参照|エクセルもおすすめです。

目次