FORECAST.LINEAR関数は、これまでのデータから回帰直線(いちばん当てはまる直線)を引き、その直線の上で将来の値を予測する関数です。「来月の売上」「広告費を 50 万円にしたときの売上」のように、x を決めたときの y を1つの式で求められます。
この記事では、FORECAST.LINEAR 関数の書き方から、複数の月をまとめて予測する方法、SLOPE・INTERCEPT・TREND との関係、月の番号の数え方の注意点、エラーになるときの直し方まで、実際の Excel の画面で説明します。
FORECAST.LINEAR関数の書き方(構文)
=FORECAST.LINEAR(x, 既知のy, 既知のx)
| 引数 | 意味 |
|---|---|
| x | 予測したい x の値(12月なら 12、広告費なら 50 など) |
| 既知のy | これまでの結果のデータ(売上など)の範囲 |
| 既知のx | これまでの原因のデータ(月・広告費など)の範囲。既知のy と同じ個数にする |
FORECAST.LINEAR は Excel 2016 から使えます。それより前の Excel では、同じ計算をする FORECAST 関数を使います(結果は同じでした)。
基本の使い方:来月の売上を予測する
9〜11月の売上から、12月の売上を予測します。A5 に予測したい月の 12 を入れ、B5 に次の式を入れると、128.67 になりました。
=FORECAST.LINEAR(A5,B2:B4,A2:A4)

3か月分の売上(124・122・128)に直線を当てはめ、その直線を 12月まで延ばした値です。月を 9・10・11 のような数値で入れておくのがポイントです。「9月」のような文字では計算できません。
まず動かしてみよう|この記事のサンプルをその場で試せます
ブラウザの上で FORECAST.LINEAR 関数を試せます。「FORECAST.LINEAR(練習ファイル)」は 9〜11月の売上から 12月の売上(B5)を予測します。「複数の月をまとめて予測」は 12〜15(翌年3月)をまとめて予測します。練習用ファイルの「基本」「複数の月」シートと同じ表です。
複数の月をまとめて予測する
Microsoft 365・Excel 2021 以降なら、x に範囲を渡すと、予測値がまとめて下へ広がります(スピル)。
=FORECAST.LINEAR(A5:A8,B2:B4,A2:A4)

12・13・14・15 の4か月分が 128.67・130.67・132.67・134.67 と並びました。ここで大事なのは、翌年の1月を「13」と数えることです(①)。直線は月の番号で引いているので、番号を 1 に戻すと 9月より前を予測することになります。
SLOPE・INTERCEPT・TREND との関係
FORECAST.LINEAR の予測値は「傾き × x + 切片」です。広告費と売上の例で確かめました。

広告費 50 万円の予測は 259.5、60 万円は 294.2 でした(①)。傾き(SLOPE)3.48 × 50 + 切片(INTERCEPT)85.65 も、=TREND(B2:B9,A2:A9,50) も同じ 259.5 です(②)。
| 関数 | 向いている場面 |
|---|---|
| FORECAST.LINEAR | 1つの x の予測を、いちばん短い式で出したいとき |
| TREND | x が複数の列(説明する項目が複数)のとき。古い Excel でも複数の値をまとめて返せる |
| SLOPE・INTERCEPT | 直線の式(傾きと切片)そのものを表に出したいとき |
| FORECAST.ETS | 季節ごとの波がある時系列データを予測したいとき |
詳しくは SLOPE関数・INTERCEPT関数・TREND関数・FORECAST.ETS関数で説明しています。
【実機で検証】TREND との一致・空欄がある範囲
広告費 10〜50 と売上の 5 か月分から、広告費 60 のときの売上を予測しました。

| ためしたこと | 結果 |
|---|---|
=FORECAST.LINEAR(60,C2:C6,B2:B6) | 326 |
=TREND(C2:C6,B2:B6,60) | 326(同じ) |
| 売上が空欄の 6 行目まで範囲に含める | 326(空欄の行は無視された) |
FORECAST.LINEAR と TREND は同じ 326 になりました。予測したい月の行を表に作っておき、売上が空欄のまま範囲に含めても、結果は変わりませんでした。ただし、行数がそろっていないと #N/A になります。
よくある間違い

| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 予測値が急に下がる・上がる | 翌年の月を 1・2… と数え直した | 13・14… と続けて数える。日付なら日付の値のまま使う。 |
| #DIV/0! になる | 既知のx が「9月」のような文字/x がすべて同じ値 | 月の番号などの数値にする。 |
| #N/A になる | 既知のy と既知のx の範囲の大きさが違う | 2つの範囲を同じ行数にする。 |
| 予測が当たらない | データが直線に並んでいない(季節の波など) | 散布図で確かめ、RSQ で当てはまりを見る。季節の波があるなら FORECAST.ETS。 |
試したところ、12月の次を「1」とすると 106.67 と大きく下がり(①)、「13」とすると 130.67 でした(②)。月が文字だと #DIV/0!、範囲の大きさが違うと #N/A です(③)。直線への当てはまりは RSQ 関数で確かめられます(RSQ関数)。
よくある質問
FORECAST と FORECAST.LINEAR の違いは?
計算は同じです。FORECAST.LINEAR は Excel 2016 で新しく用意された名前で、FORECAST は古い Excel との互換用に残っています。この記事の例では、どちらも 128.6667 でした(FORECAST関数)。
日付を x にして予測できますか?
できます。日付は内部では数値(シリアル値)なので、既知のx に日付の列、x に予測したい日付を指定します。翌年になっても番号が続くので、月の番号のような数え直しの心配がありません。
どれくらい先まで予測してよいですか?
決まりはありませんが、手元のデータの範囲から遠く離れるほど、直線のずれが大きくなります。データの期間に比べて近い先までにとどめ、実績が出たら予測を見直します。
あわせて読みたい:予測・回帰分析の関連記事
グラフに線を引いて式で予測するときは、エクセルで近似曲線を引く方法もあわせてご覧ください。

コメント