スプレッドシートのGROWTH関数の使い方|指数トレンド

スポンサーリンク

「売上が毎月どんどん加速して伸びている」「このペースが続くと半年後はどれくらいになる?」

こんなふうに、伸びが加速するデータの将来予測をしたいときってありますよね。スプレッドシートのTREND関数FORECAST関数で予測しても、直線的な予測になって実態と合わないことがあります。

そんなときに使えるのがGROWTH関数です。この記事では基本の書き方から実務での活用例、TREND関数やFORECAST関数との違いまで解説します。

スプレッドシートのGROWTH関数とは?指数トレンドで将来値を予測する

GROWTH関数(読み方: グロース関数)は、既存のデータから指数回帰で予測値を配列で返す統計関数です。「GROWTH」は英語の「growth(成長)」が由来です。

指数回帰とは、データの増え方が一定ではなく加速していくパターンに当てはめる手法のことです。数式モデルは y = b × m^x で、mが成長倍率、bがy切片にあたります。

たとえば「毎月1.3倍ずつ売上が伸びている」ようなデータがあるとします。GROWTH関数に将来の月番号を指定すると、指数トレンドに沿った予測値が一発で出ます。

GROWTH関数にできることをまとめると、次のとおりです。

  • 既存データの指数的な傾向から、複数のxに対する予測値を配列で返す
  • TREND関数が「直線的な予測」なのに対し、加速する成長パターンに対応できる
  • 内部でLOGEST関数と同じ指数回帰の計算を自動的に行う
  • 売上の急成長・SNSフォロワー増加・利用者数の拡大など、指数的な伸びの予測に活用できる

NOTE

GROWTH関数はGoogleスプレッドシートの全バージョンで使えます。Googleスプレッドシートでは結果が自動的にスピル(隣接セルに展開)されます。Excelの旧バージョンではCtrl+Shift+Enterで確定する必要がありますが、スプレッドシートではEnterだけでOKです。Excel版GROWTH関数の使い方はこちらで解説しています。

線形成長と指数成長の違い

GROWTH関数を使いこなすには、線形成長と指数成長の違いを押さえておきましょう。

項目線形成長指数成長
増え方毎回同じ量だけ増える毎回同じ倍率で増える
数式モデルy = mx + by = b × m^x
具体例毎月20万円ずつ売上増加毎月1.3倍ずつ売上増加
グラフの形直線右肩上がりの曲線
対応する関数TREND / FORECASTGROWTH

「毎月+20万円」なら線形成長です。「毎月×1.3倍」なら指数成長です。増え方の量が一定か、倍率が一定かで判断するのがポイントです。

GROWTH関数の構文と4つの引数

=GROWTH(既知データ_y, [既知データ_x], [新規データ_x], [b])
引数必須/任意説明
既知データ_y必須既存の従属変数データ(例: 売上データ)。正の数値のみ
既知データ_x任意既存の独立変数データ(例: 月番号)。省略すると {1,2,3,…} が使われる
新規データ_x任意予測したいxの値(例: 7〜9月の月番号)。省略すると既知データ_xと同じ値が使われる
b任意y切片を計算するか(TRUE/省略)、1に固定するか(FALSE)

必須の引数は「既知データ_y」だけです。ただし、実務では「既知データ_x」と「新規データ_x」も指定するのが一般的ですよ。

WARNING

既知データ_yには正の数値のみ指定できます。0以下の値が含まれていると #NUM! エラーになります。これはGROWTH関数が内部で対数を取るためです。

TIP

「既知データ_x」を省略すると、1, 2, 3… という連番がxとして使われます。時系列データで月番号を振っている場合は省略してもOKです。

GROWTH関数の基本的な使い方

実際にGROWTH関数を使ってみましょう。

あるお店で6か月分の売上を記録したとします。毎月の伸びが加速しているのが特徴です。

 A列(月番号)B列(売上・万円)
2行目1120
3行目2155
4行目3200
5行目4260
6行目5340
7行目6440

このデータは毎月おおむね1.3倍ずつ増えています。直線的な伸びではなく、加速している典型的な指数成長パターンですね。

単一の将来値を求める

まず、7月目の予測値を1つだけ求めてみます。D2セルに予測したい月番号「7」を入力して、次のように書きます。

=GROWTH(B2:B7, A2:A7, D2)

結果は約 570 です。指数トレンドに沿って、7月目の売上は570万円になると予測できます。

複数の将来値を一括予測する(スピル自動展開)

D列に予測したい月番号(7, 8, 9)を入力しておきます。

=GROWTH(B2:B7, A2:A7, D2:D4)

結果は約 570, 740, 960 の3つの値が配列として返ります。D2〜D4セルに予測値が自動で展開されます。

1つの数式で3か月分の予測値が出るのがGROWTH関数の強みです。FORECAST関数だとセルごとに数式を入力する必要があります。しかもFORECASTは直線予測なので、加速するデータには合いません。

ちなみに、同じデータでTREND関数(直線予測)を使うと7月目は約474万円です。GROWTH関数の570万円と比べると、指数成長のデータではTRENDが過小評価になることがわかりますね。

第4引数「b」をFALSEにするケース

第4引数bをFALSEにすると、y切片が1に固定されます。数式モデルが y = m^x になるイメージです。

=GROWTH(B2:B7, A2:A7, D2:D4, FALSE)

これはどんなときに使うかというと、「x=0のときyは1であるべき」という前提がある場合です。たとえば成長倍率だけを見たいケースや、初期値を基準に何倍になるかだけを求めたい場面で使います。

通常はTRUE(デフォルト)で問題ありません。特別な理由がない限り、第4引数は省略してOKですよ。

実務でよく使う活用パターン

売上の指数成長予測

スタートアップや新サービスの立ち上げ期は、売上が指数的に伸びるケースが多いです。そんなときにGROWTH関数が活躍します。

 A列(月番号)B列(月次売上・万円)
2行目180
3行目2110
4行目3150
5行目4200
6行目5270
7行目6360

D2:D6に予測月(7〜12月)の番号を入力して、次の数式を入力します。

=GROWTH(B2:B7, A2:A7, D2:D7)

向こう6か月分の予測が一括で出ます。経営会議の資料や事業計画に使えるデータが一発で揃いますね。

TIP

GROWTH関数はあくまで「過去のトレンドがこのまま続く」前提の予測です。市場の飽和や競合の参入など、外部要因で成長が鈍化する可能性もあります。予測値はシナリオの1つとして扱ってください。

SNSフォロワー数・アクティブユーザー数の予測

SNSのフォロワー増加やアプリのアクティブユーザー数は、バズや口コミで指数的に伸びることがあります。

 A列(週番号)B列(フォロワー数)
2行目1500
3行目2700
4行目31,000
5行目41,400
6行目52,000
7行目62,800
=GROWTH(B2:B7, A2:A7, {7; 8; 9})

配列リテラル {7; 8; 9} を使えば、別のセルに予測用の値を入力しなくても一括予測ができます。結果は約 3,970、5,610、7,920 です。

このデータは毎週おおむね1.4倍ペースで伸びています。TREND関数で直線予測すると7週目は約2,980になり、実態より低めの予測になってしまいます。成長が加速しているデータにはGROWTH関数のほうが適していますよ。

GROWTH・TREND・FORECASTの使い分け早見表

スプレッドシートには予測系の関数が複数あります。それぞれの違いを表にまとめます。

項目GROWTHTRENDFORECAST / FORECAST.LINEAR
予測の種類指数回帰(曲線)線形回帰(直線)線形回帰(直線)
数式モデルy = b × m^xy = mx + by = mx + b
入力xを複数(配列)で指定xを複数(配列)で指定xを1つだけ指定
出力予測値を配列で返す予測値を配列で返す予測値を1つ返す
向いているデータ伸びが加速するデータ一定ペースで増減するデータ一定ペースで増減するデータ
係数を取得する関数LOGESTLINESTSLOPE

データが直線的か指数的かを見分ける3つのチェック

どの関数を選ぶかは、データの増え方で決まります。次の3つのチェックで判断してみてください。

チェック1: 差分と倍率を比べる

各データの「前月との差」と「前月との倍率」を計算します。差がほぼ一定なら線形、倍率がほぼ一定なら指数です。

チェック2: グラフで確認する

データを散布図にして眺めます。点が直線的に並んでいれば線形。右に行くほど急に上がる曲線なら指数です。

チェック3: 対数を取って直線になるか確認する

yの値にLN関数(自然対数)を適用します。対数を取ったあとのデータが直線的に並ぶなら、元のデータは指数的です。この判定方法が最も正確ですよ。

判断フロー:どの関数を選べばいい?

迷ったときは、次のフローで判断してみてください。

  1. 予測したい値は1つだけ? → YES なら FORECAST関数 または FORECAST.LINEAR関数
  2. 複数の予測値を一括で出したい? → 次のステップへ
  3. データの伸びが加速している? → YES なら GROWTH関数
  4. データが一定ペースで増減? → YES なら TREND関数

TIP

迷ったら、まずTREND関数とGROWTH関数の両方で予測を出してみましょう。予測値と実績のズレが小さいほうを採用するのが実務的なアプローチです。

よくある疑問と注意点

予測値がおかしいとき

GROWTH関数の予測値が実態とかけ離れている場合、次の原因が考えられます。

症状原因対策
予測値が大きすぎるデータ数が少なく成長率を過大評価しているデータ期間を長くする
予測が実績とずれるそもそもデータが指数成長ではないTREND関数に切り替える
#NUM! エラー既知データ_yに0以下の値があるyは正の数値のみにする
#VALUE! エラー引数に数値以外の値が含まれているセル範囲に文字列が混じっていないか確認する
#NUM! エラー既知データ_yとxの配列サイズが異なるセル範囲の行数を揃える

特に多いのが #NUM! エラーです。GROWTH関数は内部でyの対数(LN関数)を計算するため、yに0やマイナスの値があると計算できません。売上データで「売上ゼロの月」がある場合は、その行を除外するか1に置き換える必要がありますよ。

TIP

エラーが表示されると困る場合は、IFERROR関数で囲むと安心です。=IFERROR(GROWTH(B2:B7, A2:A7, D2:D4), "データを確認") のように書けます。

LOGESTとの違い

GROWTH関数とよく比較されるのがLOGEST関数です。この2つの関係は、TREND関数LINEST関数の関係と同じです。

項目GROWTHLOGEST
返す値予測値(yの値)回帰係数(m と b)
用途将来の値を予測したいとき成長倍率や切片を知りたいとき
数式モデルy = b × m^x の y を返すy = b × m^x の m と b を返す

GROWTH関数は「予測値そのもの」を返します。一方LOGESTは「成長倍率mとy切片b」を返します。「毎月何倍ずつ伸びているか」を知りたいならLOGEST、「来月の予測値はいくらか」を知りたいならGROWTHを使い分けてください。

たとえば先ほどの売上データ(120, 155, 200, 260, 340, 440)でLOGESTを実行すると、mが約1.30と返ります。これは「毎月約1.3倍ずつ成長している」という意味ですね。GROWTH関数はこのmとbを使って予測値を計算しているわけです。

まとめ

GROWTH関数は、既存のデータから指数回帰で予測値を配列で返す関数です。

この記事のポイント

  • 構文は =GROWTH(既知データ_y, [既知データ_x], [新規データ_x], [b]) で、必須は既知データ_yのみ
  • 数式モデルは y = b × m^x。伸びが加速するデータの予測に最適
  • TREND関数は直線予測、GROWTH関数は曲線予測。データの増え方で使い分ける
  • yに0以下の値があると #NUM! エラーになる。正の数値のみ指定してください
  • LOGESTは係数を返す関数。GROWTHは予測値を返す関数。目的で選び分ける

関連する統計関数

GROWTH関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。データ分析の幅が広がりますよ。

タイトルとURLをコピーしました