「売上が右肩上がりに伸びているけど、来年はどのくらいになるんだろう?」と思ったことはありませんか。直線的ではなく、加速度的に増えていくデータの将来予測は、手計算だとなかなか大変ですよね。
ExcelのGROWTH関数を使えば、指数回帰曲線(しすうかいききょくせん)をもとにした将来予測がかんたんにできます。この記事では、GROWTH関数の基本的な書き方から実務での活用例、よくあるエラーの対処法まで、まるごと解説していきます。
ExcelのGROWTH関数とは?
GROWTH関数は「グロース」と読みます。英語の「growth(成長)」が語源です。
GROWTH関数は、既存のデータから指数回帰曲線を計算し、将来の値を予測する関数です。指数回帰曲線とは、データが「一定の割合で増え続ける(または減り続ける)」パターンにフィットする曲線のことですよ。
たとえば、こんなデータに向いています。
- 年々加速して増えるWebサイトのアクセス数
- 倍々で伸びていくサービスの会員数
- 複利で増える投資の運用額
GROWTH関数の内部では y = b * m^x という指数モデルを使っています。bが初期値、mが成長率(倍率)、xが期間です。このモデルをもとに、新しいxに対するyの予測値を返してくれます。
ExcelでのGROWTH関数の書き方(構文と引数)
基本構文
=GROWTH(既知のy, [既知のx], [新しいx], [定数])
GROWTH関数は配列数式として動作します。Excel 2021やMicrosoft 365では自動でスピル(結果が複数セルに展開)しますが、古いバージョンでは Ctrl + Shift + Enter で確定する必要があります。
引数の説明
| 引数 | 必須 | 説明 |
|---|---|---|
| 既知のy | 必須 | 既にわかっているyの値(正の数のみ) |
| 既知のx | 省略可 | yに対応するxの値。省略すると {1,2,3,…} が使われる |
| 新しいx | 省略可 | 予測したい地点のxの値。省略すると既知のxと同じ値が使われる |
| 定数 | 省略可 | TRUE(既定)= bを計算する / FALSE = bを1に固定する |
既知のyには、過去の売上や利用者数など、予測のもとになるデータを指定します。0以下の値が含まれていると #NUM! エラーになるので注意してください。
既知のxには、yに対応する時間軸(年度や月番号など)を指定します。省略すると {1, 2, 3, …} という連番が自動で割り当てられますよ。
新しいxには、予測したい将来の時点を指定します。たとえば既知のxが1〜5年目なら、6〜8年目を指定すれば3年先まで予測できます。
定数は、ほとんどの場合はTRUE(または省略)で問題ありません。FALSEにすると y = m^x というモデルになり、初期値bが1に固定されます。
GROWTH関数の基本的な使い方
実際にGROWTH関数を使ってみましょう。あるサービスの年間利用者数(5年分)から、6年目以降を予測する例です。
サンプルデータ
| セル | A列(年) | B列(利用者数) |
|---|---|---|
| 2行目 | 1 | 100 |
| 3行目 | 2 | 150 |
| 4行目 | 3 | 230 |
| 5行目 | 4 | 340 |
| 6行目 | 5 | 510 |
A8セルに「6」、A9セルに「7」、A10セルに「8」と入力しておきます。
B8セルに次の数式を入力してください。
=GROWTH(B2:B6, A2:A6, A8:A10)
Excel 2021 / Microsoft 365では、B8セルに入力するだけでB8〜B10に結果がスピルします。古いバージョンでは、B8:B10を選択した状態で数式を入力し、Ctrl + Shift + Enter で確定してください。
6年目は約760、7年目は約1,130、8年目は約1,690のように、指数的な成長カーブに沿った予測値が得られます。
ポイントは「既知のx」と「新しいx」の単位を揃えることです。年で指定しているなら、新しいxも年で指定してくださいね。
GROWTH関数の実践的な使い方・応用例
月次売上の来期予測
月次の売上データ(12か月分)から、翌月以降の売上を予測するケースです。
A列に月番号(1〜12)、B列に売上が入っているとします。13〜15月目(翌期3か月分)を予測するには、次のように書きます。
=GROWTH(B2:B13, A2:A13, {13,14,15})
新しいxは、セル参照の代わりに {13,14,15} のような配列定数を直接書くこともできますよ。
既知のxを省略したシンプルな書き方
データが1, 2, 3, … と等間隔で並んでいるなら、既知のxは省略できます。
=GROWTH(B2:B6, , A8:A10)
2番目の引数の位置にカンマだけ置いて省略します。データが連番の場合はこちらのほうがスッキリしますね。
LOGEST関数と組み合わせて成長率を確認する
GROWTH関数で予測値を出したら、LOGEST関数を使って成長率(倍率m)と初期値bを確認するのがおすすめです。
=LOGEST(B2:B6, A2:A6)
LOGEST関数は指数回帰の係数(m と b)を返します。たとえばmが1.5なら「毎期50%ずつ成長している」ということがわかりますよ。
GROWTH関数でよくあるエラーと対処法
#NUM! エラー
「既知のy」に0以下の値が含まれていると発生します。GROWTH関数は内部で対数計算を行うため、0やマイナスの値は処理できません。
対処法: データに0やマイナスがないか確認してください。欠損値が0になっている場合は、前後の平均値で補完するなどの工夫が必要です。
#REF! エラー
「既知のy」と「既知のx」のサイズが一致しない場合に発生します。
対処法: 両方の範囲の行数(または列数)が同じになっているか確認してください。たとえば既知のyが5行なら、既知のxも5行にする必要がありますよ。
#VALUE! エラー
引数に数値以外のデータ(文字列や空白セル)が含まれている場合に発生します。
対処法: 範囲内にテキストや空白が混入していないかチェックしてください。セルの表示形式が「文字列」になっている数値もエラーの原因になります。
GROWTH関数と似た関数との違い・使い分け
GROWTH関数と混同しやすい関数を整理しておきましょう。
| 関数 | 回帰モデル | 返すもの | 使いどころ |
|---|---|---|---|
| GROWTH | 指数(y = b * m^x) | 予測値 | 加速度的に増減するデータの予測 |
| TREND | 線形(y = a + bx) | 予測値 | 一定ペースで増減するデータの予測 |
| LOGEST | 指数(y = b * m^x) | 係数(m, b) | 指数回帰の成長率・初期値を知りたいとき |
| LINEST | 線形(y = a + bx) | 係数(a, b) | 線形回帰の傾き・切片を知りたいとき |
GROWTH関数とTREND関数の使い分けがもっとも重要です。データをグラフにしたとき、直線的に伸びているならTREND関数、カーブを描いて加速しているならGROWTH関数を選んでください。
迷ったときは、EXP関数やLN関数でデータを対数変換してみるのも手です。対数をとったあとのデータが直線的に並ぶなら、指数回帰(GROWTH関数)がフィットしている証拠ですよ。
まとめ
ExcelのGROWTH関数は、指数回帰曲線を使ってデータの将来予測ができる関数です。
この記事のポイントをおさらいしておきましょう。
- GROWTH関数は
y = b * m^xの指数モデルで予測する - 必須の引数は「既知のy」だけ。残りは省略可能
- 配列数式として入力する(Microsoft 365ではスピル対応)
- 0以下のデータが含まれると
#NUM!エラーになる - 直線的なデータにはTREND関数、指数的なデータにはGROWTH関数と使い分ける
- LOGEST関数と組み合わせれば、成長率も確認できる
売上やアクセス数の予測をしたいときに、ぜひ活用してみてください。
