ExcelのGEOMEAN関数の使い方|幾何平均で正しい成長率を計算する

スポンサーリンク

「売上の成長率が5%、10%、-5%だったとき、平均成長率は何%ですか?」

こう聞かれたら、AVERAGE関数で計算しようとする方が多いのではないでしょうか。でもAVERAGEで出した平均成長率は、実際の最終結果と合わないことがあります。

Excelで成長率や利率の「正しい平均」を求めるには、幾何平均(きかへいきん)という計算方法が必要です。この記事では、GEOMEAN関数の基本の書き方から実務での活用例、AVERAGEとの違いまで解説します。

ExcelのGEOMEAN関数とは?幾何平均で正しい平均成長率を求める

GEOMEAN関数(読み方: ジオミーン関数)は、データの幾何平均を返す統計関数です。「GEOMEAN」は英語の「Geometric Mean(幾何平均)」の略で、相乗平均とも呼ばれます。

幾何平均とは、すべての値を掛け合わせてn乗根を取る計算方法です。計算式は (x1 × x2 × ... × xn)^(1/n) です。

たとえば2と8の幾何平均は √(2×8) = √16 = 4 になります。算術平均(AVERAGE)だと (2+8)÷2 = 5 です。掛け算ベースで考えるか、足し算ベースで考えるかの違いですね。

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

  • 成長率や倍率など、掛け算で変化するデータの「正しい平均」を求める
  • AVERAGE関数では過大評価になるケースを正確に計算できる
  • 年平均成長率(CAGR)の計算に活用できる
  • 複利計算の平均利率を求めるのに最適

NOTE

GEOMEAN関数はExcel 2007以降のすべてのバージョンで使えます。Microsoft 365でも同じ書き方で動作しますよ。

算術平均(AVERAGE)との違い

GEOMEAN関数の最大のポイントは、AVERAGEとの使い分けです。

項目AVERAGE(算術平均)GEOMEAN(幾何平均)
計算方法合計 ÷ 個数全部掛けてn乗根
向いているデータ足し算で変化するデータ掛け算で変化するデータ
具体例テストの点数、気温成長率、利率、倍率
外れ値の影響受けやすい比較的受けにくい

足し算ベースのデータにはAVERAGE、掛け算ベースのデータにはGEOMEANです。このシンプルなルールを覚えておけば迷いませんよ。

幾何平均はいつ使うのか

幾何平均の出番は「掛け算で変化するデータ」です。具体的には次のような場面で使います。

  • 成長率の平均: 売上が毎年何%ずつ伸びたかの平均を求めるとき
  • 投資の平均利回り: 複利で運用した資産の年平均リターン
  • 人口増加率: 年ごとの増加率から平均増加率を計算するとき
  • 比率・倍率の平均: スケールが異なる比率データの代表値

共通しているのは「前の値に倍率を掛ける」構造です。このようなデータでAVERAGEを使うと、結果が実態とズレてしまいますよ。

GEOMEAN関数の書き方と基本的な使い方

基本構文

=GEOMEAN(数値1, [数値2], ...)

引数の説明

引数必須/任意説明
数値1必須数値、またはセル範囲。正の数のみ
数値2, …任意追加の数値またはセル範囲(最大255個)

引数はすべて正の数である必要があります。0やマイナスの値が含まれていると #NUM! エラーになるので注意してください。

WARNING

セル範囲に含まれる文字列や論理値(TRUE/FALSE)は無視されます。ただし、引数に直接 TRUE を入力すると1として計算に含まれます。空白セルも無視されますよ。

基本的な使い方

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

ある会社の4年間の売上成長率を記録したとします。各年の成長倍率をセルに入力しています。

 A列(年)B列(成長倍率)意味
2行目1年目1.055%成長
3行目2年目1.1010%成長
4行目3年目0.955%減少
5行目4年目1.088%成長

ここで重要なのは、成長率を「倍率」で入力する点です。5%成長なら1.05、5%減少なら0.95として入力します。

C2セルに次の数式を入力してみてください。

=GEOMEAN(B2:B5)

結果は約 1.0434 です。ここから1を引くと約0.0434、つまり年平均成長率は約4.3%だとわかります。

試しにAVERAGE関数で同じデータを計算すると =AVERAGE(B2:B5) は1.045、つまり4.5%です。わずかな差に見えますが、データ数が多くなったり変動が大きくなると差はどんどん広がりますよ。

TIP

成長率をGEOMEAN関数に渡すときは、必ず「1 + 成長率」の倍率形式にしてください。成長率そのもの(0.05, 0.10, -0.05)を渡すと、マイナスの値で #NUM! エラーになります。

実践的な使い方・応用例

年間売上成長率の平均を求める(AVERAGEとの比較)

ここでは、AVERAGEとGEOMEANの差が実感できる具体例を見てみましょう。

ある会社の5年間の売上データがあります。

 A列(年度)B列(売上・万円)C列(成長倍率)
2行目2021年1,000
3行目2022年1,5001.50
4行目2023年1,2000.80
5行目2024年1,8001.50
6行目2025年1,4400.80

C列の成長倍率は =B3/B2 のように前年比で計算しています。

=GEOMEAN(C3:C6)

結果は約 1.0954 です。年平均成長率は約9.5%です。

一方、AVERAGEで計算すると次のようになります。

=AVERAGE(C3:C6)

結果は 1.15 です。つまり年平均成長率が15%という計算です。

でも実際の売上を見てください。1,000万円から1,440万円への4年間の増加です。年平均15%成長なら4年後は 1,000 × 1.15^4 ≒ 1,749万円 になるはずですが、実際は1,440万円です。GEOMEANの9.5%なら 1,000 × 1.0954^4 ≒ 1,440万円 でピッタリ合います。

このように、成長率の平均はGEOMEANを使わないと正しい値になりません。AVERAGEは成長と減少が交互にあるデータで過大評価してしまうのです。

複利計算・平均利率への応用

投資や預金の平均利回りを計算するときにもGEOMEAN関数が活躍します。

ある投資信託の5年間の年間リターンが次のとおりだったとします。

リターン倍率
1年目+12%1.12
2年目-8%0.92
3年目+15%1.15
4年目+3%1.03
5年目-5%0.95

倍率をB2:B6に入力して、次の数式を使います。

=GEOMEAN(B2:B6) - 1

結果は約 0.0300 です。つまり年平均リターンは約3.0%です。

AVERAGEだと (12-8+15+3-5)÷5 = 3.4% になります。GEOMEANのほうが低い値になるのは、複利効果を正しく反映しているからです。マイナスの年があると、その後の利益で取り戻すのに余分な力が必要になりますよね。GEOMEANはこの影響をきちんと計算してくれます。

TIP

GEOMEAN関数の計算は、POWER関数を使って手動で再現できます。=POWER(PRODUCT(B2:B6), 1/COUNT(B2:B6)) と書くと同じ結果です。GEOMEAN関数はこの計算を一発でやってくれるわけですね。

よくあるエラーと対処法

GEOMEAN関数で遭遇しやすいエラーをまとめます。

エラー原因対処法
#NUM!引数に0以下の値がある成長率は倍率(1+r)で入力する。0の行は除外するか1に置き換える
#NUM!データが0個(空の範囲を指定した)セル範囲にデータが入っているか確認する
#VALUE!数値以外のテキストを引数に直接指定したセル参照を使うか、数値のみを指定する

特に多いのが #NUM! エラーです。GEOMEAN関数は内部でLN関数(自然対数を返す関数)を使って計算しています。対数は0以下の値に対して定義できないため、エラーになるのです。

成長率データで「売上がゼロの年」がある場合はどうすればよいでしょうか。倍率が0になってしまうので、その行を除外するか、ごく小さな正の値(0.001など)に置き換えて対処してください。

エラーが表示されると困る場合は、IFERROR関数で囲んでおくと安心です。

=IFERROR(GEOMEAN(B2:B6), "データを確認してください")

似た関数との違い・使い分け

GEOMEAN関数と関連する関数の違いを整理しておきましょう。

関数返す値用途
GEOMEAN幾何平均成長率・利率の正しい平均
AVERAGE算術平均足し算ベースのデータの平均
HARMEAN調和平均速度・レートの平均
POWERべき乗の値GEOMEANの手動計算に使える
EXPeのべき乗対数を元に戻す計算で活用

GEOMEANは「過去データの代表値」を出す関数です。成長率の平均にはGEOMEAN、速度の平均にはHARMEAN関数、テストの点数のような足し算データにはAVERAGEです。3つの平均を使い分けられると、データ分析の精度がグッと上がりますよ。

また、EXP関数LN関数を組み合わせると、GEOMEAN関数を別の書き方で表現できます。=EXP(AVERAGE(LN(B2:B6))) はGEOMEAN(B2:B6)と同じ結果を返します。対数の世界で算術平均を取って元に戻す、という仕組みですね。

まとめ

GEOMEAN関数は、成長率や倍率など掛け算で変化するデータの正しい平均を求める関数です。

この記事のポイント

  • 構文は =GEOMEAN(数値1, [数値2], ...) で、引数はすべて正の数
  • 成長率を渡すときは「1 + 成長率」の倍率形式にする
  • AVERAGEで成長率の平均を出すと過大評価になる。GEOMEANなら実際の最終値と一致する
  • 0以下の値が含まれると #NUM! エラー。倍率形式なら減少も正の値で表現できる
  • 3つの平均(算術平均・幾何平均・調和平均)をデータの性質で使い分ける

関連記事

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

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