「売上が毎年加速して伸びているけど、この成長カーブをExcelで数式にできないかな?」と感じたことはありませんか。右肩上がりのデータを直線で近似すると、実態とズレた予測になってしまいますよね。
ExcelのLOGEST関数を使えば、指数回帰(しすうかいき)の係数をかんたんに求められます。基本構文・引数の意味・統計情報の読み解き方を解説します。GROWTH関数を組み合わせた売上予測の手順まで、まるごと説明しますよ。
LOGEST関数とは?どんなときに使う関数か
LOGEST関数は「ログエスト」と読みます。LOGarithmic + ESTimate(対数推定)が語源です。
LOGEST関数は、既存のデータに y = b × m^x という指数回帰モデルをあてはめ、係数(mとb)を返す関数です。mは成長率(倍率)、bは初期値を表しています。
たとえば、mが1.15と出たら「毎期15%ずつ成長している」とわかります。0.85なら「毎期15%ずつ減少」です。m=1なら変化なしを意味しますよ。
LOGEST関数は予測値そのものではなく「モデルの中身」を返す関数です。予測値がほしい場合はGROWTH関数と組み合わせて使います。
線形回帰と指数回帰の違い(LINEST関数との対比)
回帰分析には大きく分けて2種類あります。
- 線形回帰(LINEST関数): y = a + bx のモデル。データが一定ペースで増減するときに使う
- 指数回帰(LOGEST関数): y = b × m^x のモデル。データが加速度的に増減するときに使う
LOGEST関数は内部でデータを対数変換します。log(y) = log(b) + x × log(m) の形に変換し、LINESTと同等の線形回帰を実行しています。つまりLINESTの「指数バージョン」というイメージですね。
直線で近似できるデータにはLINEST関数、カーブを描いて加速するデータにはLOGEST関数と使い分けてください。
指数成長データの見分け方(グラフで判断するコツ)
データが指数成長かどうか迷ったときは、次の方法で確認できます。
- データを散布図にして、直線ではなくカーブを描いているかを確認する
- データの対数(LN関数)をとって散布図を作る。直線に近くなれば指数回帰が適している
たとえば売上データをLN関数で変換したあとのグラフがきれいに直線に並んでいたら、LOGEST関数を使うサインです。逆に、そのままのデータが直線的ならLINEST関数のほうが適していますよ。
LOGEST関数の構文と4つの引数
基本構文
=LOGEST(既知のy, [既知のx], [定数], [補正])
LOGEST関数は配列数式として動作します。Excel 2021・Microsoft 365では、結果が複数セルに自動展開(スピル)されます。Excel 2019以前は、Ctrl + Shift + Enter での確定が必要です。
引数①:既知のy(必須)
回帰の対象となるyの値を指定します。売上や利用者数など、予測したいデータ列のことです。
注意点: yに0や負の値が含まれていると #NUM! エラーになります。LOGEST関数は内部で対数計算を行うため、正の数のみ受け付けます。
引数②:既知のx(省略可)
yに対応するxの値を指定します。年度や月番号などの時間軸が一般的です。
省略すると {1, 2, 3, …} という連番が自動で割り当てられます。データが等間隔に並んでいるなら省略してもOKですよ。
引数③:定数(省略可)
初期値bの扱いを指定します。
| 値 | 動作 | 回帰モデル |
|---|---|---|
| TRUE(既定) | bを計算する | y = b × m^x |
| FALSE | bを1に固定する | y = m^x |
ほとんどの場合はTRUE(または省略)で問題ありません。原点を通る回帰を求めたい特殊なケースでFALSEを使います。
引数④:補正(省略可)
統計情報を追加出力するかどうかを指定します。
| 値 | 動作 | 出力サイズ |
|---|---|---|
| FALSE(既定) | 係数のみ返す | 1行2列(mとb) |
| TRUE | 統計情報も返す | 5行2列(係数+統計量) |
TRUEにすると決定係数R²やF統計量など、モデルの精度を評価するための情報も一緒に得られます。実務では最初にTRUEで出力して、モデルの信頼性を確認するのがおすすめです。
補正=TRUEで返される5行2列の出力を読み解く
LOGEST関数の補正をTRUEにすると、5行×2列(計10個)の値が返されます。ちょっと情報量が多く見えますが、それぞれの意味がわかれば難しくありません。
次のサンプルデータで実際に試してみましょう。
| セル | A列(年) | B列(売上・万円) |
|---|---|---|
| 2行目 | 1 | 100 |
| 3行目 | 2 | 120 |
| 4行目 | 3 | 150 |
| 5行目 | 4 | 180 |
| 6行目 | 5 | 220 |
D2セルに次の数式を入力してください。
=LOGEST(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) |
|---|---|
| 約1.21 | 約82.5 |
これが回帰式 y = b × m^x の心臓部です。m ≈ 1.21 なら「年間約21%の成長率」、b ≈ 82.5 なら「x=0時点の初期値が82.5万円」を意味します。
mの読み方をまとめておきましょう。
- m > 1:成長(例: m=1.21 → 年21%増加)
- 0 < m < 1:減少(例: m=0.85 → 年15%減少)
- m = 1:変化なし
2行目:各係数の標準誤差
| D3(se_m) | E3(se_b) |
|---|---|
| mの標準誤差 | bの標準誤差 |
係数の「ブレ幅」を示す値です。標準誤差が小さいほど、その係数の推定が安定していることを意味します。
3行目:決定係数R²とyの標準誤差
| D4(R²) | E4(se_y) |
|---|---|
| 決定係数 | y推定値の標準誤差 |
R²(決定係数)は最重要の指標です。 0〜1の範囲で、1に近いほどモデルがデータにフィットしていることを示します。
- R² ≧ 0.9:モデルの当てはまりが良い。予測に使える
- R² < 0.7:当てはまりが弱い。LINEST(線形回帰)を試したほうがよいかもしれない
4行目:F統計量と自由度
| D5(F値) | E5(df) |
|---|---|
| F統計量 | 自由度(残差) |
F値が大きいほど「回帰モデルが偶然でなく意味がある」ことを示します。学術論文でなければ、R²だけ確認すれば実務上は十分ですよ。
5行目:回帰平方和と残差平方和
| D6(ssreg) | E6(ssresid) |
|---|---|
| 回帰平方和 | 残差平方和 |
回帰平方和はモデルが説明できた変動量、残差平方和は説明しきれなかった変動量です。ssreg ÷ (ssreg + ssresid) = R² という関係がありますよ。
実務で使う!LOGEST→GROWTHの2ステップ売上予測
LOGEST関数で係数を確認し、GROWTH関数で予測値を出す。この2ステップが実務での定番ワークフローです。
Step1:LOGESTで指数回帰の係数を取得する
先ほどのサンプルデータ(A2:B6)を使って、まずは係数と統計量を確認します。
=LOGEST(B2:B6, A2:A6, TRUE, TRUE)
出力の1行目からm(成長率)とb(初期値)を、3行目からR²(決定係数)を読み取ってください。
Step2:GROWTHで将来の売上予測値を算出する
R²が十分に高ければ(目安は0.9以上)、GROWTH関数で将来の値を予測します。
A8セルに「6」、A9セルに「7」、A10セルに「8」と入力しておきます。B8セルに次の数式を入力してください。
=GROWTH(B2:B6, A2:A6, A8:A10)
6〜8年目の予測値がスピルして表示されます。GROWTH関数は内部でLOGESTと同じ回帰計算を行い、新しいxに対するy値を直接返してくれますよ。
手動で計算したい場合は、LOGESTから得たmとbを使って次の式でも同じ結果になります。
=E2 * D2 ^ A8
E2がb、D2がmの場合です。GROWTH関数のほうが手軽ですが、式の仕組みを理解するには手動計算も試してみてください。
予測精度の確認方法(R²の見方)
予測の信頼性を判断するには、R²(決定係数)をチェックするのが基本です。
| R²の範囲 | 判断の目安 |
|---|---|
| 0.95以上 | 非常に良好。安心して予測に使える |
| 0.90〜0.95 | 良好。実務では十分な精度 |
| 0.70〜0.90 | まずまず。予測は参考程度にとどめる |
| 0.70未満 | 当てはまりが弱い。モデルの見直しが必要 |
R²が低い場合は、データが指数成長ではなく線形成長のパターンかもしれません。LINEST関数に切り替えて比較してみてくださいね。
LOGEST・GROWTH・LINEST・TREND 4関数の使い分け比較表
回帰関連の4関数は役割が明確に分かれています。迷ったときはこの表を参考にしてください。
| 関数 | 回帰モデル | 返すもの | 予測担当 | 使いどころ |
|---|---|---|---|---|
| LOGEST | 指数(y = b × m^x) | 係数(m, b)+統計量 | GROWTH | 指数成長の成長率・初期値を知りたいとき |
| GROWTH | 指数(y = b × m^x) | 予測値 | — | 加速度的に増減するデータの将来予測 |
| LINEST | 線形(y = mx + b) | 係数(m, b)+統計量 | TREND | 線形成長の傾き・切片を知りたいとき |
| TREND | 線形(y = mx + b) | 予測値 | — | 一定ペースで増減するデータの将来予測 |
ポイントは2つの軸で整理することです。
- データの形状: カーブ → LOGEST / GROWTH、直線 → LINEST / TREND
- 知りたいもの: 係数(モデルの中身)→ LOGEST / LINEST、予測値(結果)→ GROWTH / TREND
LOGESTとGROWTHはセットで使うのが定番です。LOGESTでモデルの妥当性(R²)を確認してから、GROWTHで予測を出す。この流れを覚えておけば、指数回帰による予測で迷うことはありませんよ。
よくあるエラーと対処方法
配列数式の入力ミス(#VALUE!エラー)
Excel 2019以前で Ctrl + Shift + Enter を押さずにEnterだけで確定すると、正しい結果が得られません。補正=TRUEの場合は1つ目の値(m)しか返されず、残りのセルに #VALUE! が出ることがあります。
対処法: 出力先セル範囲(補正=TRUEなら5行2列)を選択し、数式を入力します。そのあと Ctrl + Shift + Enter で確定してください。数式バーに {=LOGEST(…)} と中かっこが表示されれば成功です。
Microsoft 365やExcel 2021をお使いなら、自動スピルに対応しているのでこの問題は起きません。
データが指数曲線に合わない場合
LOGEST関数自体はエラーにならなくても、R²が著しく低い場合はモデルがデータに合っていない可能性があります。
確認ポイント:
- yに0や負の値が含まれていないか →
#NUM!エラーの原因になる - yとxの配列サイズが一致しているか →
#REF!エラーの原因になる - 引数に文字列が混入していないか →
#VALUE!エラーの原因になる - データが実は線形成長ではないか → LINEST関数を試す
R²が低いからといって間違いではありません。「このデータは指数回帰に向いていない」という有用な情報が得られたわけです。LINEST関数に切り替えるか、データの前処理(外れ値の確認など)を検討してみてください。
よくあるエラーの一覧はExcelのエラー値一覧も参考にしてくださいね。
まとめ
ExcelのLOGEST関数は、指数回帰モデル(y = b × m^x)の係数と統計量を求める関数です。
この記事のポイントをおさらいしておきましょう。
- LOGEST関数は「成長率m」と「初期値b」を返す。予測値がほしいときはGROWTH関数を使う
- 引数「補正」をTRUEにすると、5行2列の統計情報(R²・F値など)も取得できる
- R²(決定係数)が0.9以上ならモデルの当てはまりが良好。予測に活用できる
- 配列数式として入力する(Microsoft 365ではスピル対応)
- カーブするデータにはLOGEST / GROWTH、直線的なデータにはLINEST / TRENDを使い分ける
- yに0や負の値が含まれると
#NUM!エラーになる
売上やアクセス数の成長率を分析したいときに、ぜひ活用してみてください。Excel関数の一覧はこちらから確認できます。
