「アンケートで一番多い回答はどれだろう?」。集計するとき、こんな疑問が浮かびませんか?
平均値や中央値ではなく、「最も多く選ばれた値」を知りたい場面は意外と多いものです。手作業で数えるのは面倒ですし、データが増えると見落としも起きがちですよね。
そんなときに使うのが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つとも出して比較するのがおすすめ
よくある質問(FAQ)
Q. MODE関数とMODE.SNGL関数は同じ?
A. はい、まったく同じです。MODE.SNGL はExcelとの互換性を高めるために追加されたエイリアスで、動作・引数は MODE 関数と変わりません。どちらを使っても結果は同じです。
Q. 文字列データの最頻値は求められる?
A. MODE関数は数値のみ対応しているため、文字列は無視されます。文字列の最頻値を求めたい場合はCOUNTIF関数で出現回数を数えるか、文字列を数値コードに変換してから使う方法があります。
Q. MODE.MULTとMODEの違いは?
A. MODE関数は最頻値が複数あるときに「最小値の1つだけ」を返します。MODE.MULT関数はすべての最頻値を配列で返します。「2番目に多い値も知りたい」ときはMODE.MULTを使いましょう。
Q. 条件を指定して最頻値を求めることはできる?
A. MODE関数単体では条件指定ができませんが、INDEX(範囲, MATCH(MAX(COUNTIFS(...)), COUNTIFS(...), 0)) の組み合わせで条件付き最頻値を求められます。詳しくは「条件付きで最頻値を求める」セクションをご覧ください。
Q. 文字列(テキスト)の最頻値を求めるには?
A. MODE関数は数値専用のため文字列には対応していません。テキストの最頻値は INDEX(範囲, MATCH(MAX(COUNTIF(範囲, 範囲)), COUNTIF(範囲, 範囲), 0)) という式で求められます。「テキストデータの最頻値を求める」セクションに具体例があります。
Excelとの違い
MODE関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =MODE(数値1, …) | =MODE(値1, …) |
| 動作 | 最頻値を返す | 最頻値を返す |
| 引数上限 | 最大255個 | 最大30個 |
| 空白セル | スキップ | スキップ |
| 文字列セル | スキップ | スキップ |
| 複数最頻値の扱い | 最小値を返す | 最小値を返す |
| MODE.MULT | 対応 | 対応 |
引数の上限数が異なりますが、セル範囲を使えば問題ありません。Excelと同じ感覚で使えます。
MODE.MULT関数で複数の最頻値をすべて取得する
MODE関数は最頻値が複数あるとき「最小値だけ」を返しますが、すべての最頻値を取り出したいときはMODE.MULT関数を使います。
書き方
=MODE.MULT(値1, [値2, ...])
結果は配列で返るため、複数のセルに展開して表示されます。
具体例
「70, 80, 80, 90, 90, 95」というデータで試します。
=MODE.MULT(B2:B7)
80と90が同じ出現回数(2回ずつ)のため、結果は 80、90 の2つが返ります。
| 出力先セル | 結果 |
|---|---|
| C2 | 80 |
| C3 | 90 |
TIP
MODE.MULTを使う場合は、結果を受け取る分だけのセルをあらかじめ確保しておきましょう。結果の個数がわからないときはIFERRORと組み合わせると安全です。
最頻値が何種類あるかを確認する方法
最頻値の個数を数えたいときは次の式が便利です。
=SUMPRODUCT((COUNTIF(B2:B10, B2:B10)=MAX(COUNTIF(B2:B10, B2:B10)))/COUNTIF(B2:B10, B2:B10))
この式は「最大出現回数と等しい値の種類数」を返します。結果が1なら最頻値は1つ、2以上なら複数あります。
条件付きで最頻値を求める(COUNTIFS+MATCHの活用)
「男性回答者だけ」「特定の部署だけ」など、条件を絞って最頻値を求めたい場面があります。残念ながらMODE関数はIF条件を直接受け付けません。そのため、COUNTIFSとMATCHを組み合わせた方法を使います。
構成のイメージ
A列に部門名、B列に評価スコア(1〜5)が入っているとします。「営業部だけの最頻スコア」を求めるケースで解説します。
COUNTIFS+MATCHで条件付き最頻値を求める式
=INDEX(B2:B20, MATCH(MAX(COUNTIFS(A2:A20, "営業部", B2:B20, B2:B20)), COUNTIFS(A2:A20, "営業部", B2:B20, B2:B20), 0))
式の読み方:
COUNTIFS(A2:A20, "営業部", B2:B20, B2:B20)— 部門が「営業部」かつ各スコアと同じ値が何件あるかをB列の各行で数えるMAX(...)— その中で最大の出現回数を取得MATCH(MAX(...), ..., 0)— 最大出現回数が最初に現れる行位置を特定INDEX(B2:B20, ...)— その位置のスコアを返す
NOTE
この式は「最初に見つかった最頻値」を返します。同じ出現回数の値が複数ある場合は、リスト上で最初に登場した値が返ります。
実際の入力例
| 行 | A列(部門) | B列(評価) |
|---|---|---|
| 2 | 営業部 | 4 |
| 3 | 総務部 | 3 |
| 4 | 営業部 | 5 |
| 5 | 営業部 | 4 |
| 6 | 総務部 | 4 |
| 7 | 営業部 | 4 |
上の式を使うと、営業部の評価スコアは「4, 5, 4, 4」なので、最頻値として 4 が返ります。
テキストデータの最頻値を求める(COUNTIFを活用)
MODE関数は数値専用のため、「”男性”・”女性”」「”東京”・”大阪”・”名古屋”」などの文字列データには使えません。テキストの最頻値を求めるには、INDEXとMATCH、COUNTIFを組み合わせます。
基本の式(テキスト最頻値)
=INDEX(A2:A10, MATCH(MAX(COUNTIF(A2:A10, A2:A10)), COUNTIF(A2:A10, A2:A10), 0))
式の読み方:
COUNTIF(A2:A10, A2:A10)— 各セルの値がA列全体に何回出現するかを配列で計算MAX(...)— 最大の出現回数を取得MATCH(MAX(...), ..., 0)— 最大出現回数と一致する最初の行位置を特定INDEX(A2:A10, ...)— その行位置のテキストを返す
具体例
| 行 | A列(回答) |
|---|---|
| 2 | 東京 |
| 3 | 大阪 |
| 4 | 東京 |
| 5 | 名古屋 |
| 6 | 東京 |
| 7 | 大阪 |
=INDEX(A2:A7, MATCH(MAX(COUNTIF(A2:A7, A2:A7)), COUNTIF(A2:A7, A2:A7), 0))
「東京」が3回で最多のため、結果は 東京 です。
出現回数と一緒に表示する
最頻テキストが何回出現したかも合わせて表示するには、2つのセルに分けて記述します。
=INDEX(A2:A10, MATCH(MAX(COUNTIF(A2:A10, A2:A10)), COUNTIF(A2:A10, A2:A10), 0))
=COUNTIF(A2:A10, C2) ← C2に最頻テキストの結果が入っている場合
アンケートの自由回答を整理したり、不良品の発生パターン(「傷あり」「変形」「欠品」など)を集計したりする場面で役立ちます。
NOTE
テキストの大文字・小文字は区別されません(例:「Tokyo」と「tokyo」は同じと見なされます)。
まとめ
MODE関数は、データの最頻値(最も多く出現する値)を求める関数です。
ポイントを整理します。
- 構文は
=MODE(値1, [値2, ...])で最頻値を返す - 数値のみ対応。文字列や空白は自動スキップ
- 複数の最頻値がある場合は最小値が返される
- すべてのデータが一意だと#N/Aエラーになる
- IFERRORと組み合わせればエラーを回避できる
- アンケート集計やサイズ分析など離散データに向いている
まずは =MODE(範囲) でデータの最頻値を確認するところから試してみてください。AVERAGE関数やMEDIAN関数と並べて比較すると、データの特徴が見えてきますよ。