スプレッドシートのTRIMMEAN関数の使い方|外れ値を除いたトリム平均で実態に近い平均値を計算

スポンサーリンク

「平均値を出したのに、なんだか実態と合わない気がする……」

そんな経験はありませんか? 飛び抜けた値が1件でも混ざると、AVERAGE関数の結果が引っ張られてしまいます。かといって、外れ値を手作業で1件ずつ除外するのは面倒ですし、判断にも迷いますよね。

TRIMMEAN関数なら、上下の極端な値を自動で除外した平均を一発で計算できます。割合を指定するだけで、データ全体のうち何%を切り落とすかを自由に調整できる便利な関数です。

この記事では、TRIMMEAN関数の基本構文から実務での活用例、AVERAGEやMEDIANとの使い分け、よくあるエラーの対処法までを徹底解説します。記事の後半にはFAQも用意したので、つまずきやすいポイントもまとめてチェックできますよ。

スプレッドシートのTRIMMEAN関数とは?外れ値を除いた平均を求める関数

TRIMMEAN関数(読み方: トリムミーン関数)は、データの上端と下端を切り落とした平均値(トリム平均)を返す統計関数です。「TRIMMEAN」は英語の「Trimmed Mean(トリムされた平均)」が由来になっています。

たとえば10個のデータに対して割合を0.2と指定したとしましょう。すると上位1個・下位1個を除いた残り8個のデータで平均を計算します。外れ値が結果に与える影響を、自動的に抑え込んでくれるイメージです。

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

  • 外れ値を含むデータから、信頼性の高い平均値を自動で計算できる
  • 切り落とす割合を自分で調整できるので、データの特性に合わせた分析ができる
  • AVERAGE関数では極端な値に引っ張られる場面でも、実態に近い平均値を得られる
  • アンケート集計、テストスコア、売上単価、レビュー評価など、実務で幅広く活用できる
  • ExcelのTRIMMEAN関数と互換性があり、CSV経由でファイルをやり取りしても結果が変わらない

オリンピックの採点競技で「最高点と最低点を除いた平均点」を採用するのを見たことがある方も多いと思います。あれもトリム平均の発想と同じです。極端な評価1つで全体が大きくブレることを防ぐ、定番の集計手法といえます。

NOTE

TRIMMEAN関数はGoogleスプレッドシートの全バージョンで使えます。ExcelのTRIMMEAN関数とも完全に互換性があるので、同じ数式をそのままコピーして使えますよ。

TRIMMEAN関数の書き方(構文と引数)

基本構文

=TRIMMEAN(データ, 割合)

引数の説明

引数必須/任意説明
データ必須平均を求めたいセル範囲または配列
割合必須切り落とすデータの割合。0以上1未満の小数で指定

割合の指定がポイントです。0.2にするとデータ全体の20%を切り落とします。上位10%と下位10%をそれぞれ除外する仕組みになっています。

切り落とすデータの個数は「データ数 × 割合」で求めます。結果が奇数になった場合は、最も近い偶数に切り捨てるルールです。上下で同じ個数ずつ除外するために、必ず偶数個になるよう調整されます。

具体的な例で見てみましょう。

  • データ数10、割合0.2 → 10 × 0.2 = 2 → 上下1個ずつ除外(残り8個で平均)
  • データ数20、割合0.1 → 20 × 0.1 = 2 → 上下1個ずつ除外(残り18個で平均)
  • データ数15、割合0.2 → 15 × 0.2 = 3 → 切り捨てて2 → 上下1個ずつ除外(残り13個で平均)
  • データ数50、割合0.1 → 50 × 0.1 = 5 → 切り捨てて4 → 上下2個ずつ除外(残り46個で平均)

「割合を指定したのに、思ったほど除外されないな」と感じたときは、この偶数切り捨てルールが理由です。

WARNING

割合に0を指定するとAVERAGE関数と同じ結果になります。1以上を指定すると #NUM! エラーになるので、必ず0以上1未満の範囲で指定してください。

基本的な使い方

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

10人の社員のテストスコアが記録されたデータがあるとします。

 A列(社員)B列(スコア)
2行目社員A72
3行目社員B65
4行目社員C80
5行目社員D78
6行目社員E15
7行目社員F70
8行目社員G75
9行目社員H68
10行目社員I98
11行目社員J74

社員Eの15点と社員Iの98点が極端な値になっています。まずはAVERAGE関数で普通の平均を確認してみましょう。

01 data sample table
=AVERAGE(B2:B11)
02 formula average basic

結果は 69.5 です。社員Eの15点に大きく引っ張られて、多くの社員の実力より低い数値が出ています。

03 result average basic

次にTRIMMEAN関数で上下20%を除外してみましょう。

=TRIMMEAN(B2:B11, 0.2)
04 formula trimmean basic

結果は 72.67 です。上位1個(98点)と下位1個(15点)を除いた8個の平均になっています。こちらのほうが、大多数の社員のスコアをよく反映していますよね。

実態に近い平均値を出すだけで、データの見え方が変わります。会議で資料を共有するときも、TRIMMEAN関数のほうが説得力ある数字を提示できます。

TIP

割合をどのくらいにすればいいか迷ったら、0.1〜0.2(10%〜20%) を目安にしてみてください。アンケート調査や統計分析では、この範囲が標準的な値としてよく使われます。

割合の目安はどのくらい?データの特性別ガイド

TRIMMEAN関数で一番悩むのが、割合の指定です。状況別の目安をまとめておきます。

割合切り落とす範囲向いている場面
0.05(5%)上下2.5%ずつ大規模データで、ごくわずかな外れ値だけ除きたい
0.1(10%)上下5%ずつアンケートやレビュースコアの集計(標準)
0.2(20%)上下10%ずつテストスコア、業績データなど多くの実務シーン
0.4(40%)上下20%ずつ採点競技、品質評価など外れ値の影響が大きい場面

迷ったら、まずは0.1〜0.2の範囲で試してみるのがおすすめです。割合を変えながら結果がどう変わるかを観察すると、データの特性が見えてきます。

ちなみに割合に0.5を指定するとデータの半分(上下25%ずつ)が除外されます。残ったデータの平均は、ほぼ中央値に近い値です。そういう意味では、TRIMMEAN関数はAVERAGEとMEDIANのあいだを連続的につなぐ関数とも言えます。

データ件数が少ないときの注意点

割合を決めるとき、データ件数も同時に確認しておきましょう。データが10件未満だと、TRIMMEANで除外される個数が0個になるケースが出てきます。たとえばデータ5件で割合0.2を指定すると、5 × 0.2 = 1 → 偶数に切り捨てて0個。つまり、AVERAGE関数とまったく同じ結果になります。

少ないデータで外れ値を除外したい場合は、件数を増やすか、MEDIAN関数を併用するほうが効果的です。逆にデータが100件以上ある大規模データでは、割合0.05でも十分機能します。

業界標準の目安

アカデミックな研究や統計レポートでは、割合0.1〜0.2が標準的に使われます。論文の手法欄に「20% trimmed mean」のような記載が登場するのは、TRIMMEANで割合0.2を指定したのと同じ意味です。

業務でレポートを作る場合、ステークホルダーに「なぜこの割合にしたのか」を説明できるように、割合は社内ルールとして固定しておくと運用がラクになります。

実践的な使い方・応用例

顧客アンケートの満足度スコアを集計する

顧客満足度アンケートで、1〜10の評価スコアを集めたとします。いたずら回答のような極端な評価を除外して、信頼性の高い平均を出してみましょう。

A列にアンケートの回答番号、B列にスコアが50件入っているとします。

=TRIMMEAN(B2:B51, 0.1)

割合を0.1にすると、50件のうち上下あわせて4件(上位2件・下位2件)を除外します。外れ値の影響を抑えた、実態に近い満足度スコアが得られます。

レポート資料で「単純平均と外れ値除外後の平均を併記する」スタイルにすると、データの偏り方を説明しやすくなります。

AVERAGEとTRIMMEANを並べて比較する

外れ値の影響がどのくらいあるかを確認したいときは、AVERAGEとTRIMMEANを並べて表示すると便利です。

=AVERAGE(B2:B51)
=TRIMMEAN(B2:B51, 0.2)

2つの結果を比較して差が大きいなら、外れ値の影響がある証拠です。逆に差が小さければ、外れ値はほとんどないとわかります。

この「2つの平均を比べる」テクニックは、データの偏り具合を素早くチェックするのに役立ちます。データ分析の最初のステップとして、ぜひ取り入れてみてください。

売上データで異常値を除外した平均単価を求める

月別の売上単価データから、セール月やキャンペーン月の異常値を除外して「通常月の平均単価」を把握したいケースです。

 A列(月)B列(平均単価)
2行目1月3,200
3行目2月3,100
4行目3月800
5行目4月3,300
6行目5月3,150
7行目6月3,050
8行目7月8,500
9行目8月3,200
10行目9月3,100
11行目10月3,250
12行目11月3,400
13行目12月6,800

3月のセール(800円)と7月の高額キャンペーン(8,500円)が外れ値です。12月のセール(6,800円)も少し気になりますね。

=TRIMMEAN(B2:B13, 0.2)

12 × 0.2 = 2.4 → 切り捨てて2 → 上下1個ずつ除外なので、上位1個(8,500円)と下位1個(800円)を除外した平均が出ます。結果は約 3,475円 です。

AVERAGE関数だと約 3,738円 です。キャンペーン月の8,500円に引き上げられています。通常月の実態を把握するなら、TRIMMEANが適していますね。

配送時間データから安定した平均到着時間を割り出す

物流や宅配の現場で「平均到着時間」を把握したいときも、TRIMMEAN関数が活躍します。事故渋滞や悪天候など、特殊な日のデータが混ざると単純平均では実態とかけ離れた数値になりがちです。

=TRIMMEAN(C2:C31, 0.1)

過去30日分の到着時間データに対して10%を除外すれば、上下3個(実際には偶数切り捨てで上下1個ずつ)を除いた値で平均が出ます。日常の運用想定を立てるとき、標準的な所要時間として参考にしやすい数字になります。

ARRAYFORMULAと組み合わせて複数列をまとめて集計する

商品ごとや支店ごとなど、複数列のTRIMMEAN値を一気に求めたいときは、ARRAYFORMULAと組み合わせるのではなく、行・列ごとにTRIMMEANを並べる方が分かりやすいです。

=TRIMMEAN(B2:B31, 0.1)
=TRIMMEAN(C2:C31, 0.1)
=TRIMMEAN(D2:D31, 0.1)

列ごとに数式を入れておけば、月次・週次でデータを差し替えるだけで集計レポートが自動更新されます。Googleスプレッドシートの名前付き範囲を使うと、範囲の管理がさらにラクになります。

IFやFILTERと組み合わせて条件付きトリム平均を出す

「特定の条件を満たすデータだけでトリム平均を計算したい」場面では、FILTER関数と組み合わせるのが便利です。

たとえばC列に部署名、D列にスコアが入っているデータから、「営業部だけのトリム平均」を出すには次のように書きます。

=TRIMMEAN(FILTER(D2:D101, C2:C101="営業部"), 0.2)

FILTER関数で営業部の行だけを抽出してから、その結果に対してTRIMMEAN関数を適用します。条件付き平均というとAVERAGEIF関数が定番ですが、外れ値を除外したい場合はこの「FILTER + TRIMMEAN」のパターンを覚えておきましょう。

複数条件を組み合わせたいときは、FILTERの第2引数を * で連結します。

=TRIMMEAN(FILTER(D2:D101, (C2:C101="営業部") * (E2:E101>=2025)), 0.1)

これで「営業部かつ2025年以降のスコア」だけのトリム平均が取れます。

ピボットテーブルの代替として使う

ピボットテーブルでは標準で「平均」しか選べず、トリム平均は集計関数として選択できません。データ分析の現場で「ピボットでトリム平均が欲しい」となったら、QUERY関数とTRIMMEANを組み合わせた集計表を別シートに作るのが定石です。

=ARRAYFORMULA(
  IFERROR(
    TRIMMEAN(IF(C2:C1001=部署名, D2:D1001), 0.1),
    ""
  )
)

部署別、商品カテゴリ別、月別など、ピボットの代わりにマトリクス形式の集計表を作るときに役立ちます。

よくあるエラーと対処法

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

エラー原因対処法
#NUM!割合が0未満または1以上0以上1未満の値を指定する(例: 0.2)
#VALUE!データにテキストが含まれている数値のみのセル範囲を指定する。テキストセルがある場合は範囲を見直す
#DIV/0!割合が大きすぎて残るデータがない割合を小さくするか、データ件数を増やす

特に多いのが #NUM! エラーです。割合に1を指定すると「データを100%切り落とす」意味になります。計算できる値がなくなるためエラーになるのです。

もう1つ注意したいのが、テキストが混ざるケースです。空白セルは無視されますが、テキストがあると #VALUE! エラーになります。数値だけのセル範囲を指定してください。文字列の混在がやむを得ない場合は、フィルター済みの列を参照するか、IFERRORで囲んでおくと安心です。

エラーが表示されると困る場合は、IFERROR関数で囲んでおきましょう。

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

エラー時に空欄にしたい場合は、第2引数を "" にしておくとレポートの見た目が崩れません。

結果が予想と違うときのチェックリスト

TRIMMEAN関数の結果に違和感を感じたら、次の項目を確認してください。

  • データ範囲に文字列や日付が混じっていないか
  • 割合の指定が小数で正しい範囲(0以上1未満)
  • データ数 × 割合の結果が偶数に切り捨てられているか
  • 範囲指定でヘッダー行を含めてしまっていない
  • 空白セルは無視されるが、ゼロ(0)は1件としてカウントされる点に注意

実際の現場で多いのは「ヘッダー行を含めて範囲指定してしまった」「合計行まで含めてしまった」というケースです。範囲指定するときは、データ本体だけを選ぶように気をつけましょう。

AVERAGEやMEDIANとの違い・使い分け

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

関数返す値外れ値への強さ向いている場面
AVERAGE算術平均弱い(影響を受けやすい)外れ値がないデータ
AVERAGEIF条件付き平均弱い特定条件を満たすデータの平均
TRIMMEANトリム平均強い(指定割合を除外)外れ値が含まれるデータ
MEDIAN中央値非常に強い分布が偏ったデータ
GEOMEAN幾何平均やや強い成長率・倍率のデータ
HARMEAN調和平均やや強い速度・レートのデータ
PERCENTILE任意のパーセンタイル値強い上位/下位の境界値を見たい

使い分けの判断基準はシンプルです。

  • 外れ値がないAVERAGE関数
  • 外れ値があり、除外割合を自分で決めたい → TRIMMEAN関数
  • 分布が大きく偏っているMEDIAN関数
  • 成長率や倍率のデータGEOMEAN関数
  • 速度や1単位あたりの値HARMEAN関数

TRIMMEANは「AVERAGEとMEDIANの中間」に位置する関数です。AVERAGEほど外れ値に影響されず、かといってMEDIANほど絞り込みすぎない。ちょうどいいバランスで平均値を出してくれるのが魅力です。

TIP

外れ値があるかどうかの判断には、STDEV関数が使えます。標準偏差が大きいデータは外れ値が含まれている可能性が高いので、TRIMMEAN関数の使用を検討してみてください。

よくある質問(FAQ)

Q1. TRIMMEAN関数で割合に0.5を指定すると何が起きますか?

割合に0.5を指定すると、データ全体の50%(上下25%ずつ)を除外した平均が計算されます。残るのは中央付近の50%のデータです。ほぼ中央値に近い結果が得られますが、データ数が少ないとほとんどのデータが除外されてしまうので注意してください。割合は0以上1未満の範囲で指定する必要があります。

Q2. TRIMMEANとAVERAGEはどちらを使えばいいですか?

データに外れ値が含まれている可能性があるならTRIMMEAN、外れ値がないと確信できるならAVERAGEがおすすめです。判断に迷うときは、両方の関数で平均を出して結果を比較してみましょう。差が小さければ外れ値の影響は軽微なのでAVERAGEで十分です。差が大きい場合はTRIMMEANのほうが実態に近い数値といえます。

Q3. TRIMMEAN関数とMEDIAN関数の違いは何ですか?

TRIMMEAN関数は「指定した割合のデータを切り落として平均を計算」しますが、MEDIAN関数は「データを並べたときの中央値を返す」関数です。TRIMMEANは除外割合を自分で調整できるので、より柔軟な分析ができます。一方MEDIANは1つの代表値として瞬時に取れる強さがあります。データ分布の偏りが極端に大きいときはMEDIAN、中程度の外れ値を除外したいときはTRIMMEANが向いています。

Q4. 空白セルや文字列が混ざっているデータでも使えますか?

空白セルは自動的に無視されるので、データ範囲に空セルが混ざっていても問題なく計算できます。ただし文字列(テキスト)が含まれると #VALUE! エラーになるので、数値だけのセル範囲を指定してください。テキストが混ざる可能性がある場合は、IFERROR関数で囲むか、QUERY関数で数値のみを抽出してからTRIMMEAN関数を適用するのがおすすめです。

Q5. ExcelのTRIMMEAN関数と結果は同じになりますか?

はい、完全に同じ結果になります。GoogleスプレッドシートのTRIMMEAN関数はExcelと互換性があるので、ExcelファイルをスプレッドシートにインポートしてもTRIMMEAN関数の数式と結果はそのまま維持されます。逆にスプレッドシートで作った数式をExcelに持っていっても問題なく動作します。

Q6. 切り落とすデータの個数が予想と違うのはなぜですか?

TRIMMEAN関数は「データ数 × 割合」を計算した後、最も近い偶数に切り捨てます。たとえばデータ数10・割合0.3だと「10 × 0.3 = 3」ですが、偶数に切り捨てて2個(上下1個ずつ)を除外します。上下で同じ個数ずつ除外するために必ず偶数個になる仕組みです。割合を指定したつもりより少なく除外されることがあるので、データ数と割合の組み合わせを確認しておきましょう。

まとめ

TRIMMEAN関数は、データの上端と下端を切り落として外れ値の影響を排除した平均を求める関数です。

この記事のポイント

  • 構文は =TRIMMEAN(データ, 割合) で、割合は0以上1未満の小数
  • 割合0.2なら上位10%と下位10%を除外して平均を計算する
  • 切り落とす個数は「データ数 × 割合」を偶数に切り捨てて算出する
  • 割合の目安は 0.1〜0.2(10%〜20%) が一般的
  • AVERAGEで外れ値に引っ張られる場面で、実態に近い平均を得られる
  • AVERAGEとTRIMMEANを並べて比較すると、外れ値の影響度がわかる
  • 文字列が混ざると #VALUE! エラーになるので数値だけの範囲を指定する
  • ExcelのTRIMMEAN関数と完全に互換性がある

関連する関数

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

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