LINEST 関数は、Excel で線形回帰の傾き・切片・決定係数 R2 を 1 つの数式で求める統計関数です。「広告費を 1 万円増やすと売上はいくら伸びるか」を数式で答えたいときに使います。x が 1 つだけの単回帰なら SLOPE / INTERCEPT のほうが式が短く、x が複数の重回帰や R2 など統計量も同時に取りたいときこそ LINEST の出番です。Microsoft 365 / Excel 2021 / 2024 では結果が自動で複数セルに展開(スピル)されます。
この記事では Excel 2024(Build 19822)で全数式を実機検証した結果をもとに、基本構文から重回帰の係数列順の罠、5 行スピルで取れる統計量の見方、散布図の近似曲線との一致確認、エラー対処までをまとめています。
LINEST 関数の基本構文と対象バージョン
LINEST 関数は次の構文で書きます。
=LINEST(known_y, [known_x], [const], [stats])
| 引数 | 必須 | 意味 | 例 |
|---|---|---|---|
known_y | 必須 | y の範囲(縦 1 列または横 1 行) | D2:D13 |
known_x | 任意 | x の範囲。複数列なら重回帰。省略すると {1, 2, ..., n} が使われる | B2:B13 または B2:C13 |
const | 任意 | TRUE で切片を計算(既定)、FALSE で切片を 0 に強制 | TRUE |
stats | 任意 | TRUE で R2 など統計量を含む 5 行スピルを返す(既定 FALSE) | TRUE |
対象バージョンと自動スピルの違い
Microsoft 公式ドキュメントによると、LINEST 関数は Excel 2016 / 2019 / 2021 / 2024 / Microsoft 365 で利用できます。ただし、結果を複数セルに展開する方法はバージョンで異なります。
- Microsoft 365 / Excel 2021 / Excel 2024:自動でスピルされるので、1 つのセルに数式を入力するだけで結果が複数セルに広がる
- Excel 2019 / 2016:先に出力範囲を選択してから数式を入力し、Ctrl+Shift+Enter(CSE 配列入力)で確定する必要がある
結論先出し:単回帰なら SLOPE/INTERCEPT、複数 x や統計量なら LINEST
x が 1 つだけで「傾きと切片を出したい」だけなら、SLOPE 関数と INTERCEPT 関数のほうが式が短く読みやすいです。x が複数の重回帰、または R2 など統計量も同時に取りたいときに LINEST の出番です。
最小例:単回帰で傾きと切片を求める
あるカフェの月別データから「広告費が増えると売上はいくら伸びるか」を求めてみます。サンプル表は次のとおりです。

D 列の売上を y、B 列の広告費を x として、空いているセルに次の数式を入力します。
=LINEST(D2:D13, B2:B13)

結果は 1 行 2 列に展開され、F2 に 傾き 5.6181、G2 に 切片 118.26 が表示されます。これは「広告費を 1 万円増やすと、売上が約 5.6 万円増える」という回帰直線の式を意味します。式で書くと 売上 ≒ 5.6181 × 広告費 + 118.26 です。
同じ結果が SLOPE / INTERCEPT でも出る
単回帰では、通常のデータなら SLOPE 関数で傾き、INTERCEPT 関数で切片を求めても LINEST と同じ結果になることが多く、このサンプルでも一致しています。
=SLOPE(D2:D13, B2:B13)
=INTERCEPT(D2:D13, B2:B13)

使い分けの目安は次のとおりです。
- SLOPE / INTERCEPT:単回帰で「傾き」「切片」だけ欲しいとき。読みやすい
- LINEST:x が複数の重回帰、または R2 や F 値などの統計量も同時に欲しいとき
known_x を省略すると {1, 2, …, n} になる
第 2 引数 known_x を省略すると、Excel は内部で {1, 2, ..., n}(n はデータ点数)を x として扱います。これは「月番号での回帰」と同じ意味になるので、時系列データの単純なトレンドを取りたい場面で便利です。
=LINEST(D2:D13)
このサンプルだと結果は [2.03, 203.40] になり、「月ごとに売上が約 2 万円ずつ増えていく」という時系列トレンドを示します。
重回帰:複数の x を同時に扱う(列順の罠)
x が 2 つ以上の重回帰では、x 範囲を 連続する複数列として渡します。サンプルでは B 列の広告費に加えて C 列の平均気温も使い、「広告費と気温が売上に与える影響」を同時に分析します。
=LINEST(D2:D13, B2:C13)

⚠ 列順は x 範囲の「逆順」
重回帰で LINEST を使うと、出力の列順は x 範囲の右端から順に並びます。B 列=広告費、C 列=気温を渡したのに、結果の左から順に 気温の係数(1.7509)→ 広告費の係数(4.8449)→ 切片(100.13)が出てくるのはこのためです。3 列の x なら出力は [x3, x2, x1, 切片] の順、4 列の x なら [x4, x3, x2, x1, 切片] の順になります。「右端の列が一番左に出る」と覚えてください。
結果を式に直すと 売上 ≒ 4.8449 × 広告費 + 1.7509 × 気温 + 100.13 となります。読み方は「気温が同じなら広告費を 1 万円増やすと売上が +4.84 万円、広告費が同じなら気温が 1℃上がると売上が +1.75 万円」です。
単回帰と重回帰で広告費の係数が変わる理由
先ほどの単回帰では広告費の係数が 5.62、今回の重回帰では 4.84 と異なる値になりました。これは「単回帰では気温の影響が広告費の係数に紛れ込んでいた」ためです。気温が高い月は売上も伸びやすいので、気温を別変数で分離しないと「気温で売れた分」が広告費の効果として誤って計上されます。重回帰で気温を独立した x として加えると、純粋な広告費効果(4.84)が分離されます。
決定係数 R² や F 値も取り出す(第 4 引数 TRUE)
第 3 引数を TRUE、第 4 引数を TRUE にすると、係数の他に R2・F 値・標準誤差などの統計量を含む 5 行のスピルが返ります。
=LINEST(D2:D13, B2:C13, TRUE, TRUE)

5 行スピルの行と列の構造
k をモデルに入れた x の数とすると、出力は 5 行 ×(k+1)列になります。今回は重回帰(k=2)なので 5 行 3 列、単回帰なら 5 行 2 列です。各行の意味は次のとおりです。
| 行\列 | 列 1 | 列 2 | 列 3 〜 列 k+1 |
|---|---|---|---|
| 行 1 | 係数 m_n(最後の x) | 係数 m_n-1 〜 m_1 | 切片 b(最右列) |
| 行 2 | SE_n(係数の標準誤差) | SE_n-1 〜 SE_1 | SE_b |
| 行 3 | R2(決定係数) | SE_y(推定値の標準誤差) | #N/A |
| 行 4 | F 値 | df(自由度 = n − k − 1) | #N/A |
| 行 5 | SS_reg(回帰平方和) | SS_res(残差平方和) | #N/A |
3 列目以降の行 3〜5 が #N/A になるのは仕様で、エラーではありません。実際に意味のある値は左 2 列だけです。
各統計量の意味(最低限の解説)
- R2(決定係数):モデルがデータをどれだけ説明できているかの指標。0〜1 の範囲で、1 に近いほど良い当てはまり。経験則として 0.7 以上で実用的とされる
- SE_y(推定値の標準誤差):予測値の典型的なズレ幅。単位は y と同じ(このサンプルでは万円)
- SE_n(係数の標準誤差):各係数の信頼幅。係数 ÷ SE が概ね 2 以上なら、その係数は統計的に意味があるとみなされる目安
- F 値:モデル全体が偶然でないかの指標。F 検定で使う。大きいほどモデルに意味あり
- df(自由度):n − k − 1。サンプル数が小さいと信頼性が下がる目安
- SS_reg / SS_res:それぞれ回帰平方和と残差平方和。R2 = SS_reg ÷(SS_reg + SS_res)が成立する
サンプルでは R2 = 0.9696 と非常に高く、広告費と気温だけで売上のほぼ全変動が説明できています。なお、より厳密な統計の解釈は専門書に譲ります。
第 3・第 4 引数の組み合わせ早見表
| const | stats | 出力形状 | 内容 |
|---|---|---|---|
| TRUE(既定) | FALSE(既定) | 1 ×(k+1) | 係数と切片のみ |
| TRUE | TRUE | 5 ×(k+1) | 係数 + 全統計量 |
| FALSE | FALSE | 1 × k | 係数のみ(切片強制 0) |
| FALSE | TRUE | 5 × k | 係数 + 統計量(切片の SE は出ない) |
⚠ const=FALSE は切片を 0 に強制する
const を FALSE にすると切片が 0 に固定されます。これは「物理的に切片が 0 と決まっているケース」(例:距離 = 速度 × 時間で時間が 0 のとき距離も 0)に限って使う特殊な指定です。普通の業務データでは TRUE(既定)のまま使ってください。
求めた式で予測する(TREND と FORECAST.LINEAR)
LINEST で係数を取った後は、新しい x の値に対する y を予測したくなります。Excel には予測専用の関数が 2 つ用意されています。
=FORECAST.LINEAR(30, D2:D13, B2:B13)
=TREND(D2:D13, B2:B13, 30)
どちらも「広告費 30 万円のときの売上はいくらか」を予測する式で、結果は同じく 286.80(万円)です。LINEST で求めた傾きと切片を使って手で計算しても 5.6181 × 30 + 118.26 = 286.80 と完全に一致します。
- TREND:複数の予測値を一発で出したい場合に便利(スピル対応、新 x を範囲で渡せる)
- FORECAST.LINEAR:1 点だけ予測したい場合のシンプル API
散布図の近似曲線と LINEST は一致する
散布図に「近似曲線(線形)」を追加し、グラフ上に式を表示させると、その式の傾きと切片は LINEST 関数の結果と完全に一致します。LINEST の数値が正しいかをグラフで視覚的に確かめられるので、検算手段としても便利です。

y = 5.6181x + 118.26 と R2 = 0.8026 が表示され、LINEST と RSQ の結果と完全一致する近似曲線の追加手順は、散布図を選択した状態で「グラフのデザイン」タブ →「グラフ要素を追加」→「近似曲線」→「線形」を選択し、近似曲線を右クリックして「近似曲線の書式設定」から「グラフに数式を表示する」「グラフに R-2 乗値を表示する」のチェックを ON にします。
LINEST 関数のエラーと注意点
出るエラーは #REF! と #VALUE! が中心

- #REF!:x と y の要素数が違うとき。
known_yとknown_xの行数・列数がそろっているかをまず確認します - #VALUE!:x または y のセルに文字列が混入しているとき
- #NAME?:関数名の綴りが違うとき(LINEST 関数自体は Excel 2003 以前から実装されているので、バージョンが古くて使えないということは普通起きない)
なお Microsoft Support では、x と y の範囲を重ねないように案内しています。重ねた場合の挙動はパターンによって異なる(エラーが出る場合と、意図しない結果が返る場合がある)ため、x と y はもともと別の列に分けて指定するのが安全です。
エラーは出ないが要注意なケース
LINEST には「結果は返るが信頼できない」状況があります。エラーが出ないため気付きにくく、初心者がはまりやすい罠です。
- データ点が 1〜2 個しかないとき:エラーにならず、傾き 0 や完全フィットの値を返してしまう。実用には最低 3 点、できれば 10 点以上のデータを推奨
- 完全な多重共線性があるとき(例:x2 = 2 × x1):エラーにならず数値を返すが、係数の標準誤差が極端に小さい・F 値が極端に大きい・R2 がぴったり 1.0 になる、などの兆候で判別する必要がある
「数値が出た = 信頼できる」とは限りません。必ず R2 や残差をチェックしてからモデルを使ってください。
マウス操作で回帰したいときは「分析ツール」アドイン
LINEST を覚える前に「とにかくマウス操作で回帰結果一覧を出したい」場合は、Excel に標準で用意されている 「分析ツール」アドインの「回帰分析」が便利です。係数・R2・F 値・残差グラフまでまとめて出力してくれます。
有効化手順は次のとおりです。
- 「ファイル」→「オプション」→「アドイン」を開く
- 下部の「管理:Excel アドイン」横にある「設定」をクリック
- 「分析ツール」にチェックを入れて「OK」
- 「データ」タブの右端に「データ分析」ボタンが追加されるので、そこから「回帰分析」を選択
分析ツールは「数式で回帰結果を再計算したくない(一度きり出力できれば良い)」用途向きで、データを更新しても結果は自動更新されません。データに連動させたいなら LINEST のほうが向きます。
関連関数の使い分け早見表
| 用途 | 関数 | スピル | 単回帰のみ | 重回帰 |
|---|---|---|---|---|
| 傾きを 1 セルで | SLOPE(y, x) | × | ◯ | × |
| 切片を 1 セルで | INTERCEPT(y, x) | × | ◯ | × |
| R2 を 1 セルで | RSQ(y, x) | × | ◯ | × |
| 既存データに合わせた予測値(複数) | TREND(y, x, 新x) | ◯ | ◯ | △ |
| 1 点だけ予測 | FORECAST.LINEAR(新x, y, x) | × | ◯ | × |
| 全部入り(係数 + 統計量、重回帰対応) | LINEST(y, x, [const], [stats]) | ◯ | ◯ | ◯ |
まとめ
- LINEST 関数は Excel で線形回帰の傾き・切片・決定係数 R2 を 1 つの数式で求める統計関数
- 単回帰なら SLOPE / INTERCEPT のほうが式が短い。x が複数の重回帰、または R2 など統計量が必要なら LINEST
- 重回帰の係数は x 範囲の逆順で出力されるので注意
- 第 4 引数 TRUE で 5 行 ×(k+1)列のスピルが返り、R2・F 値・標準誤差まで一度に取得できる
- 5 行スピルの行 3〜5 の 3 列目以降が
#N/Aになるのは仕様 - エラーは
#REF!(サイズ不一致)と#VALUE!(文字列混入)が中心 - データが少なすぎる、完全な多重共線性がある、などのケースは エラーが出ずに誤った数値が返るので、R2 と残差は必ず確認する
本記事の内容は Microsoft 365 / Excel 2024(Build 19822)の実機で全数式を検証した結果に基づいています。
コメント