「売上データから成長率を数値で出したいけど、グラフの近似曲線だけだと正確な値がわからない…」そんな経験はありませんか。ExcelのSLOPE関数やINTERCEPT関数で傾き・切片は出せますが、回帰モデルの精度まではわかりませんよね。
ExcelのLINEST関数を使えば、最小二乗法による線形回帰の傾き・切片だけでなく、決定係数R²やF統計量まで一括で取得できます。この記事では基本構文から統計情報の読み解き方、FORECAST.LINEAR関数と組み合わせた予測の手順まで丁寧に解説しますよ。
LINEST関数とは?どんなときに使う関数か
LINEST関数は「リネスト」と読みます。LINear + ESTimate(線形推定)が語源です。
LINEST関数は、既存のデータに y = mx + b という線形回帰モデルをあてはめ、傾き(m)と切片(b)を返す関数です。mはxが1増えたときにyがいくつ変化するかを表し、bはx=0のときのyの値を意味しています。
たとえば広告費と売上の関係を調べたとき、m=2.5と出たら「広告費を1万円増やすごとに売上が2.5万円増える」という関係がわかります。bは広告費ゼロのときのベース売上ですね。
LINEST関数は予測値そのものではなく「回帰モデルの中身」を返す関数です。予測値がほしい場合はFORECAST.LINEAR関数やTREND関数と組み合わせて使います。
SLOPE関数・INTERCEPT関数との違い
傾きだけならSLOPE関数、切片だけならINTERCEPT関数でも求められます。ただし、これらの関数では回帰モデルの精度(R²やF値)はわかりません。
LINEST関数は「傾き・切片・統計情報」をまとめて返せる点が最大の強みです。回帰分析の結果を一括で確認したいときに使ってください。
LINEST関数の構文と4つの引数
基本構文
=LINEST(既知のy, [既知のx], [定数], [補正])
LINEST関数は配列数式として動作します。Excel 2021・Microsoft 365では、結果が複数セルに自動展開(スピル)されます。Excel 2019以前は、Ctrl + Shift + Enter での確定が必要です。
引数の一覧
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 既知のy | 必須 | 回帰の対象となるyの値(売上・利用者数など) |
| 既知のx | 省略可 | yに対応するxの値。省略すると {1, 2, 3, …} の連番が自動割り当て |
| 定数 | 省略可 | TRUE(既定): 切片bを計算する / FALSE: bを0に固定する |
| 補正 | 省略可 | FALSE(既定): 係数のみ返す / TRUE: 統計情報も返す |
引数①:既知のy(必須)
回帰の対象となるyの値を指定します。売上や来客数など、分析したいデータの列です。
引数②:既知のx(省略可)
yに対応するxの値を指定します。年度や月番号、広告費のような説明変数が入ります。
省略すると {1, 2, 3, …} という連番が自動で割り当てられます。時系列データが等間隔に並んでいるなら省略してもOKですよ。
引数③:定数(省略可)
切片bの扱いを指定します。
| 値 | 動作 | 回帰モデル |
|---|---|---|
| TRUE(既定) | bを計算する | y = mx + b |
| FALSE | bを0に固定する | y = mx |
ほとんどの場合はTRUE(または省略)で問題ありません。原点を通る回帰を求めたい特殊なケースでFALSEを使います。
引数④:補正(省略可)
統計情報を追加出力するかどうかを指定します。
| 値 | 動作 | 出力サイズ |
|---|---|---|
| FALSE(既定) | 係数のみ返す | 1行2列(mとb) |
| TRUE | 統計情報も返す | 5行2列(係数+統計量) |
TRUEにすると決定係数R²やF統計量など、モデルの精度を評価するための情報も一緒に得られます。最初はTRUEで出力して、モデルの信頼性を確認するのがおすすめです。
基本的な使い方(傾きと切片を求める)
まずはシンプルな例で、傾きと切片を求めてみましょう。
次のサンプルデータを用意してください。
| セル | A列(月) | B列(売上・万円) |
|---|---|---|
| 2行目 | 1 | 100 |
| 3行目 | 2 | 130 |
| 4行目 | 3 | 155 |
| 5行目 | 4 | 190 |
| 6行目 | 5 | 210 |
D2セルに次の数式を入力してください。
=LINEST(B2:B6, A2:A6)
D2に傾き(約27)、E2に切片(約78)が返されます。Microsoft 365ではスピルで2つのセルに展開されますよ。
この結果は「月が1つ進むごとに売上が約27万円増える」「1ヶ月目の開始時点のベース売上が約78万円」という意味です。回帰式 y = 27x + 78 が得られたことになります。
ここで注意したいポイントがあります。 LINEST関数は傾き→切片の順で「右から左」に値を返します。D2がm(傾き)、E2がb(切片)です。SLOPE関数やINTERCEPT関数と結果を比べて確認してみるとわかりやすいですよ。
=SLOPE(B2:B6, A2:A6) → D2の値と一致
=INTERCEPT(B2:B6, A2:A6) → E2の値と一致
補正=TRUEで返される5行2列の統計情報を読み解く
LINEST関数の真価は、補正をTRUEにしたときに発揮されます。5行×2列(計10個)の値が返されるのでちょっと多く見えますが、それぞれの意味を整理すれば難しくありません。
D2セルに次の数式を入力してください。
=LINEST(B2:B6, A2:A6, TRUE, TRUE)
Microsoft 365ではD2:E6に5行2列の結果がスピルします。Excel 2019以前では、D2:E6を選択した状態で数式を入力し、Ctrl + Shift + Enter で確定してください。
1行目:傾きm・切片b(回帰式の本体)
| D2(m:傾き) | E2(b:切片) |
|---|---|
| 約27 | 約78 |
回帰式 y = mx + b の心臓部です。傾き27は「月1つあたり売上が27万円増加」、切片78は「0ヶ月目のベース売上が78万円」を意味します。
2行目:各係数の標準誤差
| D3(se_m) | E3(se_b) |
|---|---|
| mの標準誤差 | bの標準誤差 |
係数の「ブレ幅」を示す値です。標準誤差が小さいほど、その係数の推定が安定していることを意味します。
3行目:決定係数R²とyの標準誤差
| D4(R²) | E4(se_y) |
|---|---|
| 決定係数 | y推定値の標準誤差 |
R²(決定係数)は最重要の指標です。 0~1の範囲で、1に近いほどモデルがデータにフィットしていることを示します。別途RSQ関数で求めることもできますよ。
| R²の範囲 | 判断の目安 |
|---|---|
| 0.95以上 | 非常に良好。安心して予測に使える |
| 0.90~0.95 | 良好。実務では十分な精度 |
| 0.70~0.90 | まずまず。予測は参考程度にとどめる |
| 0.70未満 | 当てはまりが弱い。モデルの見直しが必要 |
4行目:F統計量と自由度
| D5(F値) | E5(df) |
|---|---|
| F統計量 | 自由度(残差) |
F値が大きいほど「回帰モデルが偶然でなく統計的に意味がある」ことを示します。学術論文でなければ、R²だけ確認すれば実務上は十分ですよ。
5行目:回帰平方和と残差平方和
| D6(ssreg) | E6(ssresid) |
|---|---|
| 回帰平方和 | 残差平方和 |
回帰平方和はモデルが説明できた変動量、残差平方和は説明しきれなかった変動量です。ssreg / (ssreg + ssresid) = R² という関係がありますよ。
実践的な使い方:LINEST + FORECAST.LINEARで売上予測
LINEST関数で回帰モデルの精度を確認し、FORECAST.LINEAR関数で予測値を出す。この2ステップが実務での定番ワークフローです。
Step1:LINESTでR²を確認する
先ほどのサンプルデータを使い、補正=TRUEで統計情報を出力します。
=LINEST(B2:B6, A2:A6, TRUE, TRUE)
3行目左側のR²を確認してください。0.9以上であれば、線形モデルがデータにフィットしているので予測に進めます。
Step2:FORECAST.LINEARで将来の売上を予測する
R²が十分に高ければ、FORECAST.LINEAR関数で予測を出します。8セルに「6」(6ヶ月目)を入力しておき、B8セルに次の数式を入力してください。
=FORECAST.LINEAR(A8, B2:B6, A2:A6)
6ヶ月目の予測売上が返されます。FORECAST.LINEAR関数は内部でLINESTと同じ最小二乗法の計算を行い、新しいxに対するy値を直接返してくれますよ。
手動で計算したい場合は、LINESTから得た傾きmと切片bを使って次の式でも同じ結果になります。
=D2 * A8 + E2
D2がm(傾き)、E2がb(切片)の場合です。FORECAST.LINEAR関数のほうが手軽ですが、式の仕組みを理解するために一度は手計算も試してみてください。
複数の将来値をまとめて予測する(TREND関数)
複数のxに対する予測値を一括で得たい場合は、TREND関数が便利です。
A8セルに「6」、A9セルに「7」、A10セルに「8」と入力しておき、B8セルに次の数式を入力してください。
=TREND(B2:B6, A2:A6, A8:A10)
6~8ヶ月目の予測値がスピルで3セルに展開されます。TREND関数はLINESTの線形回帰モデルで予測値をまとめて返してくれるので、複数期間の予測に向いていますよ。
よくあるエラーと対処法
#VALUE!エラー:配列数式の入力ミス
Excel 2019以前で Ctrl + Shift + Enter を押さずにEnterだけで確定すると、正しい結果が得られません。補正=TRUEの場合は傾き(m)しか返されず、残りのセルに #VALUE! が出ることがあります。
対処法: 出力先セル範囲(補正=TRUEなら5行2列)を選択し、数式を入力してから Ctrl + Shift + Enter で確定してください。数式バーに {=LINEST(…)} と中かっこが表示されれば成功です。
Microsoft 365やExcel 2021なら自動スピルに対応しているので、この問題は起きません。
#REF!エラー:配列サイズの不一致
既知のyと既知のxの配列サイズが一致していないと #REF! エラーが出ます。
対処法: yのデータが5行なら、xも5行に揃えてください。空白セルが混じっていないかも確認しましょう。
#N/A エラー:データが不足している
xの値がすべて同じ場合(変動がない場合)、傾きを計算できず #N/A エラーになることがあります。
対処法: xの値に変動があるか確認してください。すべて同じ値では回帰直線を引くことができません。
エラーの一覧と対処法はExcelのエラー値一覧も参考にしてくださいね。
似た関数との違い・使い分け
回帰分析に関連する関数は複数あります。迷ったときはこの表を参考にしてください。
| 関数 | 返すもの | 回帰モデル | 用途 |
|---|---|---|---|
| LINEST | 傾き・切片+統計量 | 線形(y = mx + b) | 回帰モデルの中身と精度を確認したいとき |
| SLOPE | 傾きのみ | 線形 | 傾きだけ手早く知りたいとき |
| INTERCEPT | 切片のみ | 線形 | 切片だけ手早く知りたいとき |
| RSQ | 決定係数R²のみ | 線形 | モデルの当てはまりだけ確認したいとき |
| TREND | 予測値 | 線形 | 線形回帰による予測値を直接得たいとき |
| LOGEST | 係数+統計量 | 指数(y = b × m^x) | 加速度的に増減するデータの回帰分析 |
| GROWTH | 予測値 | 指数 | 指数回帰による予測値を直接得たいとき |
ポイントは2つの軸で整理することです。
- 知りたいもの: 回帰係数と統計量 → LINEST / LOGEST、予測値 → TREND / GROWTH、個別の値 → SLOPE / INTERCEPT / RSQ
- データの形状: 直線的 → LINEST系、カーブ → LOGEST系
LINEST関数は「回帰モデルの全体像を確認するための関数」と覚えておけば、他の関数との使い分けで迷うことはありません。
まとめ
ExcelのLINEST関数は、最小二乗法で線形回帰モデル(y = mx + b)の傾き・切片と統計情報を求める関数です。
この記事のポイントをおさらいしておきましょう。
- LINEST関数は「傾きm」と「切片b」を返す。予測値がほしいときはFORECAST.LINEAR関数やTREND関数を使う
- 引数「補正」をTRUEにすると、5行2列の統計情報(R²・F値など)も取得できる
- R²(決定係数)が0.9以上ならモデルの当てはまりが良好。予測に活用できる
- 配列数式として入力する(Microsoft 365ではスピル対応)
- SLOPE関数・INTERCEPT関数は個別の値を返すだけ。統計情報まで欲しいならLINEST関数を使う
- カーブするデータにはLOGEST関数、直線的なデータにはLINEST関数を使い分ける
売上予測や広告効果の分析に、ぜひ活用してみてください。Excel関数の一覧はこちらから確認できます。
