「行きは時速40km、帰りは時速60km。平均速度は何km/hですか?」
つい「50km/h」と答えたくなりませんか? でもこれ、実は間違いなんです。AVERAGE関数で速度の平均を出すと、本当の平均より大きい値になってしまいます。
Googleスプレッドシートで速度や単価の「正しい平均」を求めるには、調和平均という計算方法が必要です。この記事では、HARMEAN関数の基本の書き方から実務での活用例、AVERAGEとの違いまで解説します。
スプレッドシートのHARMEAN関数とは?調和平均で正しい平均を求める
HARMEAN関数(読み方: ハーミーン関数)は、データの調和平均を返す統計関数です。「HARMEAN」は英語の「Harmonic Mean(調和平均)」の略です。
調和平均とは、各データの逆数の平均を取り、さらにその逆数を求める計算方法です。計算式は次のとおりです。
n / (1/x1 + 1/x2 + ... + 1/xn)
たとえば40と60の調和平均は 2 / (1/40 + 1/60) = 48 です。AVERAGE関数だと (40+60) / 2 = 50 ですよね。調和平均のほうが小さい値になるのがポイントです。
HARMEAN関数にできることをまとめると、次のとおりです。
- 速度の平均など「率」の平均を正しく求められる
- 1個あたりの単価の平均を正確に計算できる
- AVERAGE関数では過大評価になるケースを防げる
- GEOMEAN関数(幾何平均)と使い分けることで、データに合った正しい平均が選べる
NOTE
HARMEAN関数はGoogleスプレッドシートの全バージョンで使えます。ExcelのHARMEAN関数と互換性があるので、同じ数式をそのまま使えますよ。
HARMEAN関数の書き方(構文と引数)
基本構文
=HARMEAN(値1, [値2, ...])
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値1 | 必須 | 数値、またはセル範囲 |
| 値2, … | 任意 | 追加の数値またはセル範囲 |
引数はすべて正の数である必要があります。0や負の数を含むと #NUM! エラーになるので注意してください。
テキストや論理値(TRUE/FALSE)はセル範囲内にあっても無視されます。ただし、引数に直接テキストを指定すると #VALUE! エラーになりますよ。
HARMEAN関数の基本的な使い方
まずはシンプルな例から見てみましょう。2つの数値の調和平均を求めます。
=HARMEAN(40, 60)
結果は 48 です。計算の流れは次のとおりです。
- 各値の逆数を求める: 1/40 = 0.025、1/60 ≒ 0.0167
- 逆数の平均を求める: (0.025 + 0.0167) / 2 ≒ 0.0208
- その逆数を取る: 1 / 0.0208 = 48
セル範囲を使う場合は次のように書きます。
=HARMEAN(B2:B10)
B2からB10に入力された値の調和平均が返ります。範囲指定のほうが実務ではよく使いますよ。
実務で役立つHARMEAN関数の活用例
速度の平均を求める
調和平均の代表的な使い方が「速度の平均」です。
たとえば、営業担当の方が客先への往復で次の速度だったとします。
| 区間 | 速度 |
|---|---|
| 行き | 40 km/h |
| 帰り | 60 km/h |
AVERAGE関数で計算すると (40+60)/2 = 50 km/h になりますが、これは正しくありません。
実際の平均速度を考えてみましょう。片道の距離をDkmとすると、行きはD/40時間、帰りはD/60時間かかります。往復2Dkmを合計時間で割ると次のようになります。
2D / (D/40 + D/60) = 2D / (5D/120) = 48 km/h
HARMEAN関数なら一発で正解が出ます。
=HARMEAN(40, 60) → 48
AVERAGEだと50km/hになるところ、正しくは48km/hです。同じ距離を異なる速度で移動するときは、必ず調和平均を使いましょう。
単価の平均を求める
もうひとつ実務でよくあるのが「単価の平均」です。
たとえば、同じ予算1万円でA店とB店から商品を仕入れたとします。
| 仕入先 | 単価 | 購入数量 |
|---|---|---|
| A店 | 100円 | 100個 |
| B店 | 200円 | 50個 |
単価をAVERAGEで計算すると (100+200)/2 = 150円 です。でも実際の平均単価は、合計2万円で150個買ったので 20,000/150 ≒ 133円 ですよね。
HARMEAN関数で計算すると正解が出ます。
=HARMEAN(100, 200) → 約133.3
同じ金額を異なる単価で購入するときは、調和平均が正しい平均単価になります。
よくあるエラーと対処法
HARMEAN関数で表示されるエラーと、その原因・対処法をまとめました。
| エラー | 原因 | 対処法 |
|---|---|---|
#NUM! | 引数に0以下の値がある | データから0や負の数を除外する |
#VALUE! | 引数にテキストを直接指定した | 数値だけを指定する |
#DIV/0! | 引数が空(データがない) | セル範囲にデータが入っているか確認する |
一番多いのは #NUM! エラーです。調和平均は逆数を使って計算するため、0が含まれると「1/0」で計算できなくなります。データに0が混ざっていないか確認してみてください。
AVERAGE・GEOMEAN・HARMEANの使い分け
スプレッドシートには3種類の平均を求める関数があります。データの性質に合った関数を選ぶことが大切です。
| 関数 | 平均の種類 | 計算方法 | 向いているデータ | 具体例 |
|---|---|---|---|---|
| AVERAGE | 算術平均 | 合計 / 個数 | 足し算で変化するデータ | テストの点数、気温 |
| GEOMEAN | 幾何平均 | 全部掛けてn乗根 | 掛け算で変化するデータ | 成長率、利率、倍率 |
| HARMEAN | 調和平均 | 逆数の平均の逆数 | 率や割合のデータ | 速度、単価、打率 |
迷ったときは、次の判断基準を使ってみてください。
- 「合計」が意味を持つデータ → AVERAGE(テストの合計点など)
- 「掛け算」が意味を持つデータ → GEOMEAN(毎年の成長率を掛け合わせるなど)
- 「逆数の合計」が意味を持つデータ → HARMEAN(速度の逆数=所要時間など)
3つの平均値には HARMEAN <= GEOMEAN <= AVERAGE という関係があります。同じデータなら、調和平均が一番小さく、算術平均が一番大きくなりますよ。
まとめ
HARMEAN関数は、速度や単価など「率」のデータの正しい平均を求める関数です。
この記事のポイントをおさらいしましょう。
- HARMEAN関数は
=HARMEAN(値1, 値2, ...)で調和平均を計算できる - 同じ距離を異なる速度で移動するときは、AVERAGE ではなく HARMEAN を使う
- 同じ金額で異なる単価の商品を買うときも、HARMEAN が正しい平均単価になる
- 引数は正の数のみ。0や負の数を含むと
#NUM!エラーになる - AVERAGE(算術平均)・GEOMEAN(幾何平均)・HARMEAN(調和平均)は、データの性質で使い分ける
普段はAVERAGE関数で十分な場面がほとんどですが、速度や単価の平均を求めるときはHARMEAN関数を思い出してみてください。正しい平均値が出せると、レポートやプレゼンの説得力がぐっと上がりますよ。
