エクセルでデータを分析しているとき、最も多く登場する値、つまり「最頻値」を求めたい場面はありませんか。
平均値や中央値とともに、最頻値はデータの傾向を把握するうえで欠かせない統計指標のひとつです。
この記事では【Excel】エクセルで最頻値の出し方(MODE関数・複数の最頻値・MODE.MULTの使い方)について解説していきます。
ポイントは
・MODE関数で単一の最頻値を求めることができる
・複数の最頻値が存在する場合はMODE.MULT関数を使う
・MODE.MULT関数はCtrl+Shift+Enterの配列入力が必要な場合がある
それでは詳しく見ていきましょう。
エクセルで最頻値を出す方法1【MODE関数の基本的な使い方】
最頻値とは、データの中で最も多く出現する値のことです。
たとえば、テストの点数データで「80点」が一番多く出現するなら、最頻値は「80」となります。
エクセルではMODE関数を使うことで、数値データの最頻値を簡単に求めることができます。
MODE関数の書式は以下のとおりです。
=MODE(数値1, 数値2, …)
・数値1:最頻値を求めたいデータ範囲またはセル参照(必須)
・数値2以降:追加のデータ範囲(省略可能)
MODE関数の使用例
以下のサンプルデータを使って確認しましょう。

上記のデータでC列の販売数の最頻値を求めるには、任意のセルに以下の数式を入力します。
=MODE(C2:C7)
この数式を入力すると、「15」が結果として表示されます。

販売数の中で「15」が3回登場しており、最も多く出現する値であるため、最頻値は「15」となります。
MODE関数はデータ範囲をまとめて指定できるため、大量のデータでも一瞬で最頻値を求めることができます。
【操作のポイント】
MODE関数はテキスト(文字列)や論理値(TRUE・FALSE)を無視して計算します。
数値データのみが対象となるため、文字列が混在しているデータでも数値部分だけを正確に処理できます。
データに数値が1つしかない場合や、すべての値が異なる場合はエラー値「#N/A」が返されます。
エクセルで最頻値を出す方法2【MODE.SNGL関数との違い】
エクセル2010以降では、MODE関数の後継として「MODE.SNGL関数」が追加されています。
MODE.SNGL関数はMODE関数とまったく同じ動作をしますが、より新しい関数として位置づけられており、将来のバージョンでも継続的にサポートされる予定です。
MODE.SNGL関数の書式は以下のとおりです。
=MODE.SNGL(数値1, 数値2, …)
・数値1:最頻値を求めたいデータ範囲(必須)
・数値2以降:追加のデータ範囲(省略可能)
MODE.SNGL関数の使用例
以下のサンプルデータを使います。

C列の注文数の最頻値をMODE.SNGL関数で求めるには以下の数式を入力します。
=MODE.SNGL(C2:C7)
結果は「8」となります。

「8」は3回出現しており、「12」の2回を上回るため最頻値となります。
新しいエクセルを使用している場合は、MODE関数よりMODE.SNGL関数の使用をおすすめします。
【【ここに図を入れる】】
【操作のポイント】
MODE関数とMODE.SNGL関数は結果がまったく同じです。
古いエクセル(2007以前)との互換性が必要な場合はMODE関数を、そうでない場合はMODE.SNGL関数を使うのが望ましい選択です。
エクセルで最頻値を出す方法3【MODE.MULT関数で複数の最頻値を求める】
データの中に最頻値が複数存在する場合、MODE関数やMODE.SNGL関数では最初に見つかった1つの値しか返しません。
複数の最頻値をすべて取得したい場合は、MODE.MULT関数を使用します。
MODE.MULT関数の書式は以下のとおりです。
=MODE.MULT(数値1, 数値2, …)
・数値1:最頻値を求めたいデータ範囲(必須)
・数値2以降:追加のデータ範囲(省略可能)
・この関数は複数のセルに結果を返す「配列関数」です
MODE.MULT関数の使用例
以下のサンプルデータを使って確認しましょう。
| 番号 | 商品名 | 評価点 |
|---|---|---|
| 1 | アボカド | 85 |
| 2 | 桜餅 | 90 |
| 3 | ボルト | 85 |
| 4 | ネジ | 90 |
| 5 | カボチャ | 75 |
| 6 | マシュマロ | 85 |
| 7 | チョコ | 90 |
上記のデータでは「85」が3回、「90」が3回出現しており、最頻値が2つ存在します。
まず、結果を表示したいセル範囲(例:E2:E3)を選択します。
数式バーに以下の数式を入力します。
=MODE.MULT(C2:C8)
エクセル365またはエクセル2019以降の場合は、そのままEnterキーを押すだけで複数の最頻値が自動的に隣接するセルに展開されます。
古いバージョンのエクセルを使用している場合は、Enterではなく「Ctrl+Shift+Enter」で入力することで配列数式として動作します。
結果として「85」と「90」の2つの値が表示されます。
【【ここに図を入れる】】
【操作のポイント】
MODE.MULT関数を使うときは、結果が表示されるセルの数を事前に確認しておくことが重要です。
最頻値が3つある場合は3セル分、2つある場合は2セル分を選択してから数式を入力しましょう。
選択したセル数が最頻値の個数より少ない場合、すべての最頻値が表示されないことがあります。
エクセルで最頻値を出す方法4【文字列データの最頻値を求める方法】
MODE関数・MODE.SNGL関数・MODE.MULT関数はいずれも数値専用であり、文字列データには使用できません。
文字列データの最頻値(最も多く出現する文字列)を求めるには、COUNTIF関数とMATCH関数・INDEX関数を組み合わせた数式を使います。
この方法は少し複雑ですが、商品名や担当者名など文字列データの集計に非常に有効です。
文字列の最頻値を求める数式
以下のサンプルデータで確認します。
| 番号 | 注文商品 |
|---|---|
| 1 | マグロ |
| 2 | カツオ |
| 3 | マグロ |
| 4 | ハラス |
| 5 | マグロ |
| 6 | カツオ |
B列の注文商品の中で最も多く注文された商品名を求めるには、以下の数式を使います。
=INDEX(B2:B7, MATCH(MAX(COUNTIF(B2:B7, B2:B7)), COUNTIF(B2:B7, B2:B7), 0))
・COUNTIF(B2:B7, B2:B7):各セルの値がB2:B7の範囲に何回出現するかを配列で求める
・MAX(…):その配列の中の最大値(最も多い出現回数)を求める
・MATCH(…):最大値が最初に出現する位置を求める
・INDEX(B2:B7, …):その位置にある商品名を返す
エクセル365以外の旧バージョンでは、この数式をCtrl+Shift+Enterで入力する必要があります。
上記のサンプルでは「マグロ」が3回出現しているため、結果として「マグロ」が表示されます。
【【ここに図を入れる】】
【操作のポイント】
この数式は文字列の最頻値が1つの場合に有効です。
複数の文字列が同じ回数で最頻値となる場合は、データの中で最初に出現した文字列が返されます。
すべての最頻文字列を取得したい場合はさらに複雑な数式が必要になるため、COUNTIF関数で各値の出現回数を確認してから判断するとよいでしょう。
まとめ エクセルで最頻値の出し方(MODE.MULT・複数の最頻値・MODE関数の使い方)
エクセルで最頻値を求める方法をまとめると、以下のとおりです。
・数値データの最頻値はMODE関数またはMODE.SNGL関数で求めることができ、書式はどちらも「=MODE(範囲)」です。
・複数の最頻値が存在する場合はMODE.MULT関数を使い、結果を表示したい複数のセルを選択してから数式を入力します。
・エクセル365以外の旧バージョンでMODE.MULT関数を使う場合はCtrl+Shift+Enterで配列入力が必要です。
・文字列データの最頻値はMODE関数では求められないため、INDEX・MATCH・COUNTIF・MAXを組み合わせた数式を活用します。
最頻値は平均値とは異なり、データの「最も典型的な値」を示す指標です。
売上データや顧客アンケートの分析など、実務のさまざまな場面で活用できます。
MODE関数から始めて、慣れてきたらMODE.MULT関数にも挑戦してみましょう。


コメント