「売上が毎年加速して伸びているけど、この成長カーブを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で予測を出す。この流れを覚えておけば、指数回帰による予測で迷うことはありませんよ。
複数のX変数を使う指数重回帰(LOGEST多変量版)
LOGEST関数は、Xを1列だけでなく複数列指定することもできます。2つ以上の要因でYを説明したいときに使う「多変量指数回帰」です。
モデル式は次のとおりです。
y = b × m1^x1 × m2^x2
たとえば「売上(y)を、広告費(x1)と季節インデックス(x2)の2変数で説明する」というケースが典型例です。
実際の入力例を見てみましょう。A列に広告費、B列に季節インデックス、C列に売上が入っているとします。
=LOGEST(C2:C13, A2:B13, TRUE, TRUE)
X変数が2列になったため、出力の1行目は 3列(m2, m1, b の順) に増えます。
| 出力セル | 内容 |
|---|---|
| 1列目(最左) | m2(x2の底:季節インデックスの影響) |
| 2列目 | m1(x1の底:広告費の影響) |
| 3列目(最右) | b(初期値) |
注意が必要なのが、列の並び順が右から左に向かっている点です。X変数の指定順(A列→B列)に対して、出力はm2・m1・bと逆順で返されます。変数が増えるほど混乱しやすいので、数式の直上に変数名ラベルを書いておくと間違いが防げます。
統計量(R²・F値など)の行構造は単変量のときと同じです。ただし列数がX変数の数+1(定数b分)に増えます。出力範囲を事前に正確に選択してから数式を確定するようにしてください。
定数=FALSEにするとどうなる?原点通過モデルの使いどころ
既存本文の引数③「定数」では TRUE/FALSE の動作を表で示しましたが、「いつ FALSE を使うのか」がわかりにくいという声があります。ここで具体的な判断基準を補足しておきます。
定数=FALSE にすると、b=1 に固定した y = m^x というモデルになります。「x=0のときにyが必ず1になる」という制約を課すことと同じです。
FALSEを使うのが適切なケース:
- 倍率・比率データ: 「基準月=1倍」「基準年=100%」として設定した指数データ。x=0でy=1が保証されている
- 自然科学・工学データ: 放射性崩壊や細菌増殖など、初期値を1(規格化済み)として測定した実験データ
ビジネスデータ(売上・アクセス数・ユーザー数など)は x=0 時点の値が1になることはほぼないため、通常は TRUE(または省略)を使うのが正解です。
もう1点注意が必要です。定数=FALSE にすると、R²の解釈が変わります。切片なし回帰のR²は切片ありのR²より高くなりやすく、実態よりモデルの精度が良く見える傾向があります。「FALSE にしたらR²が上がった」は必ずしもモデルが改善したわけではないので、鵜呑みにしないようにしてください。
よくあるエラーと対処方法
配列数式の入力ミス(#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のエラー値一覧も参考にしてくださいね。
Googleスプレッドシートで使うLOGEST関数|ExcelとSheetsの互換性と違い
LOGEST関数はGoogleスプレッドシートにも用意されています。Excelからシートに移行した場合や、チームによって使うツールが異なる場合でも、ほぼ同じ感覚で使えます。
Sheetsでの公式構文は次のとおりです(Googleヘルプより)。
=LOGEST(既知データ_y, [既知データ_x], [b], [詳細])
引数の対応関係をまとめました。
| 引数の役割 | Excelの引数名 | Sheetsの引数名 |
|---|---|---|
| 予測対象のyデータ | 既知のy | 既知データ_y |
| 対応するxデータ | 既知のx | 既知データ_x |
| 定数bを計算するか | 定数(TRUE/FALSE) | b(TRUE/FALSE) |
| 統計情報を返すか | 補正(TRUE/FALSE) | 詳細(TRUE/FALSE) |
引数名こそ異なりますが、動作・返す値・TRUE/FALSEの意味はExcelと同一です。
Sheetsで大きく異なるのは入力方法です。SheetsはExcel 365と同様に動的配列(スピル)対応のため、補正=TRUEの場合でも Ctrl+Shift+Enter は不要です。先頭セルに数式を入力してEnterを押すだけで、結果が自動的に展開されます。
注意点: Sheetsで補正=TRUEにしたときの出力行数・列数がExcelの5行2列と完全に一致するかどうかは、公式ヘルプに明示されていません。実際に使う前にサンプルデータで出力範囲を確認しておくことをおすすめします。
LOGEST vs FORECAST.ETS|売上予測で迷ったときの選択基準
「売上を予測したい」という目的は同じでも、データの性質によって使う関数は変わります。LOGESTとFORECAST.ETSは特に混同されやすい組み合わせです。
| 比較軸 | LOGEST(+GROWTH) | FORECAST.ETS |
|---|---|---|
| 適したデータ | 指数的な成長トレンドが明確 | 季節変動・周期性がある |
| 返すもの | 回帰係数(モデルの中身) | 予測値のみ |
| モデルの解釈 | 成長率mや初期値bを読み取れる | 内部アルゴリズム(ETS)は非公開 |
| R²などの検証 | 補正=TRUEで取得できる | 信頼区間はFORECAST.ETS.CONFINTで確認 |
| 季節変動対応 | なし | あり(自動検出) |
判断の目安はシンプルです。
- 毎年・毎期ほぼ同じ比率で伸びているトレンドデータ → LOGEST + GROWTH
- 月次・四半期で繁閑の波があるデータ(季節性あり) → FORECAST.ETS
たとえば、SaaS企業の年間ARR(年間経常収益)推移のように季節変動がなく成長率が安定しているデータはLOGESTが向いています。一方、小売業の月次売上のように繁忙期・閑散期がはっきりしているデータにはFORECAST.ETSが適しています。
なお、FORECAST.ETS関数の詳細な使い方は公式ヘルプで確認してください(アルゴリズム固有のパラメータはバージョンによって挙動が変わる場合があります)。
まとめ
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関数の一覧はこちらから確認できます。