スプレッドシートのMODE関数の使い方|最頻値
「アンケートで一番多い回答はどれだろう?」。集計するとき、こんな疑問が浮かびませんか?
平均値や中央値ではなく、「最も多く選ばれた値」を知りたい場面は意外と多いものです。手作業で数えるのは面倒ですし、データが増えると見落としも起きがちですよね。
そんなときに使うのがMODE関数です。スプレッドシートで指定した範囲の最頻値(最も多く出現する値)を一発で返してくれます。
この記事では基本の書き方から実務での活用パターンまで紹介します。
スプレッドシートのMODE関数とは?
MODE関数(読み方: モード関数)は、指定した数値の中で最も多く出現する値(最頻値)を返す関数です。「Mode」は英語で「最頻値」や「流行」を意味します。
最頻値とは、データの中で出現回数がいちばん多い値のことです。AVERAGE関数の平均値、MEDIAN関数の中央値と並び、データの代表値としてよく使われます。
MODE関数にできることをまとめると、次のとおりです。
- 指定したセル範囲で最も多く出現する数値を返す
- 複数の離れた範囲をまとめて最頻値を求める
- 空白セルや文字列は自動的にスキップする
- アンケートやサイズ集計でよく使われる
NOTE
MODE関数はGoogleスプレッドシートの全バージョンで使えます。なお、MODE.SNGL関数はMODE関数の完全なエイリアス(別名)で、動作は同じです。
MODE関数の書き方(構文と引数)
基本構文
=MODE(値1, [値2, ...])
カッコの中に、最頻値を求めたい数値やセル範囲を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値1 | 必須 | 最頻値を求めたい最初の数値、セル参照、またはセル範囲 |
| 値2, … | 任意 | 追加で最頻値に含めたい数値やセル範囲(最大30個まで) |
引数が2つ以上ある場合は、カンマ( , )で区切ります。
引数に指定できるものは3種類あります。
- 数値を直接入力:
=MODE(3, 3, 5, 7)→ 結果は3 - セル参照:
=MODE(A1, B1, C1)→ 各セルの値の最頻値 - セル範囲:
=MODE(A1:A10)→ A1からA10の最頻値
MODE関数の基本的な使い方
ここからは実際にMODE関数を使ってみましょう。
基本パターン: セル範囲の最頻値を求める
B2からB10にテストの点数が入っているとします。点数は「70, 80, 80, 85, 90, 80, 75, 85, 90」です。
=MODE(B2:B10)
「80」が3回で最も多いため、結果は80です。
複数の最頻値がある場合
「70, 80, 80, 90, 90」のように、80と90が同じ回数のケースを考えます。
=MODE(B2:B6)
結果は80です。複数の最頻値がある場合、MODE関数は最小の値を返します。90ではなく80が返る点に注意してください。
すべての最頻値を取得したいとき
MODE.MULT関数を使うと、複数の最頻値をすべて配列で返せます。
=MODE.MULT(B2:B10)のように書きます。
複数の範囲をまとめて最頻値を求める
離れた範囲を1つにまとめることもできます。
=MODE(B2:B10, D2:D10)
カンマで区切るだけで、離れた範囲も一度に計算してくれます。
実務でのMODE関数活用パターン
基本がわかったところで、実務でよく出てくるパターンを見ていきましょう。
パターン1: アンケートの最多回答を見つける
5段階評価のアンケート結果がB列に入っているとします。
| 回答者 | 評価(1〜5) |
|---|---|
| A | 4 |
| B | 3 |
| C | 4 |
| D | 5 |
| E | 4 |
| F | 3 |
| G | 4 |
=MODE(B2:B8)
結果は4です。「4」が4回で最多だとわかります。「最も選ばれた評価は何点か」を一発で確認できますよ。
パターン2: 売れ筋サイズを特定する
注文データから最も売れているサイズを調べます。B列にサイズ(S=1, M=2, L=3, XL=4)が数値で入っているとします。
=MODE(B2:B100)
結果が「2」ならMサイズが最も売れています。在庫の発注判断に使えますね。
パターン3: 時間帯別の来客ピークを調べる
B列に来客時間帯(9, 10, 11, …)が記録されているとします。
=MODE(B2:B200)
最も来客が多い時間帯が返ります。シフト配置の参考になります。
パターン4: IFERRORでエラーを防ぐ
MODE関数は、すべての値が1回ずつしか出現しないと#N/Aエラーを返します。
=IFERROR(MODE(B2:B10), "最頻値なし")
最頻値がないときは「最頻値なし」と表示します。データが入る前の段階でも安心です。
パターン5: COUNTIFと組み合わせて出現回数も表示する
最頻値だけでなく「何回出現したか」も知りたいことがありますよね。
=MODE(B2:B20)
=COUNTIF(B2:B20, MODE(B2:B20))
1つ目のセルに最頻値、2つ目のセルにその出現回数が表示されます。
よくあるエラーと対処法
MODE関数で困ったら、以下のパターンを確認してみてください。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #N/Aエラー | すべての値が1回ずつしか出現しない | IFERRORで囲む。重複データがあるか確認する |
| #N/Aエラー | 範囲にデータが1つもない | 参照範囲にデータが入っているか確認する |
| 想定と違う値が返る | 複数の最頻値があり最小値が返されている | MODE.MULT関数で全最頻値を確認する |
| 文字列が無視される | MODE関数は数値のみ対応 | 文字列を数値コードに変換してから使う |
| 日付が巨大な数値になる | 日付がシリアル値として計算された | 日付セルは範囲から除外する |
#N/Aエラーの対処
MODE関数で最も多いのは#N/Aエラーです。すべてのデータが一意(重複なし)のとき発生します。
=IFERROR(MODE(B2:B10), "該当なし")
IFERROR関数で囲めば、エラーの代わりに任意のメッセージを表示できます。
MODE関数が適さないケース
MODE関数はすべてのデータに使えるわけではありません。
- すべての値が一意: 最頻値が存在しないため#N/Aになる
- 連続値(小数を含む測定値など): 同じ値が出にくく最頻値が意味をなさない
- テキストデータ: MODE関数は数値のみ対応
これらの場合はCOUNTIF関数で出現回数を数えるほうが適しています。
AVERAGE・MEDIAN・MODEの3つの代表値を比較
統計で「代表値」と呼ばれる3つの指標を比較します。どれを使うかで分析結果が変わるため、特徴を押さえておきましょう。
| 項目 | AVERAGE(平均値) | MEDIAN(中央値) | MODE(最頻値) |
|---|---|---|---|
| 計算方法 | 合計 / 個数 | 並べたとき真ん中の値 | 最も多く出現する値 |
| 外れ値の影響 | 大きく受ける | 受けにくい | 受けにくい |
| 向いているデータ | 偏りが少ない均質なデータ | 外れ値を含むデータ | カテゴリ的・離散的なデータ |
| 具体例 | テストの平均点 | 給与の実態把握 | アンケートの最多回答 |
| エラー条件 | 数値が0個で#DIV/0! | 数値が0個で#NUM! | 重複なしで#N/A |
具体例で比べてみよう
7人のテスト点数「60, 70, 80, 80, 80, 90, 100」で比較します。
=AVERAGE(B2:B8)
平均値は80です。
=MEDIAN(B2:B8)
中央値は80です。真ん中(4番目)の値ですね。
=MODE(B2:B8)
最頻値は80です。3回出現で最多です。
この例ではたまたま3つとも同じ値になります。しかしデータに偏りがあると結果は大きく変わります。
データに偏りがある場合
5人の月収データ「25万, 25万, 25万, 30万, 150万」で比較します。
=AVERAGE(B2:B6) → 51万
=MEDIAN(B2:B6) → 25万
=MODE(B2:B6) → 25万
平均値は150万に引っ張られて51万です。中央値と最頻値は25万で、実態に近い値が出ています。
どれを使うか迷ったら
– 均質なデータ: AVERAGE関数が適切
– 外れ値があるデータ: MEDIAN関数が安定
– 「最も多い値」を知りたい: MODE関数が最適
– 判断に迷うとき: 3つとも出して比較するのがおすすめ
Excelとの違い
MODE関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =MODE(数値1, …) | =MODE(値1, …) |
| 動作 | 最頻値を返す | 最頻値を返す |
| 引数上限 | 最大255個 | 最大30個 |
| 空白セル | スキップ | スキップ |
| 文字列セル | スキップ | スキップ |
| 複数最頻値の扱い | 最小値を返す | 最小値を返す |
| MODE.MULT | 対応 | 対応 |
引数の上限数が異なりますが、セル範囲を使えば問題ありません。Excelと同じ感覚で使えます。
まとめ
MODE関数は、データの最頻値(最も多く出現する値)を求める関数です。
ポイントを整理します。
- 構文は
=MODE(値1, [値2, ...])で最頻値を返す - 数値のみ対応。文字列や空白は自動スキップ
- 複数の最頻値がある場合は最小値が返される
- すべてのデータが一意だと#N/Aエラーになる
- IFERRORと組み合わせればエラーを回避できる
- アンケート集計やサイズ分析など離散データに向いている
まずは =MODE(範囲) でデータの最頻値を確認するところから試してみてください。AVERAGE関数やMEDIAN関数と並べて比較すると、データの特徴が見えてきますよ。
