【Excel】エクセルで最頻値を出す方法(MODE関数・度数・相対度数)
エクセルで複数の数値を集計するとき、平均値だけではデータの特徴が見えにくいことがあります。
もっとも多く現れた数値である最頻値を求めると、売上個数、アンケート回答、テスト得点、作業時間などの傾向を把握しやすくなります。
最頻値の算出にはMODE関数を使いますが、データ内に最頻値が複数ある場合や、度数表から判断したい場合には使い分けが必要です。
最頻値はデータ内で出現回数が最も多い値です。
単一の最頻値はMODE.SNGL関数、複数の最頻値はMODE.MULT関数で確認できます。
度数と相対度数を並べると、件数と割合の両方から分布を判断できます。
この記事では、Excelで最頻値を出す基本操作から、度数表と相対度数を使った見方まで順番に解説します。
サンプルデータは1行目を見出し行とし、2行目以降に数値が入力されているものとして進めましょう。
エクセルで最頻値を出す方法【MODE.SNGL関数】
| A | B | C |
|---|---|---|
| 1 | 受験者 | 得点 |
| 2 | 田中 | 75 |
| 3 | 佐藤 | 80 |
| 4 | 鈴木 | 75 |
| 5 | 高橋 | 90 |
| 6 | 伊藤 | 75 |
それではまず、最も基本的なMODE.SNGL関数で最頻値を求める方法について解説していきます。
この例では75点が3回出現するため、最頻値は75になります。
MODE.SNGL関数の入力
最頻値を表示したいセルを選択し、数式バーまたはセルにMODE.SNGL関数を入力します。
=MODE.SNGL(C2:C6)
この数式では、C2からC6までの得点データを対象として、出現回数が最も多い数値を返します。
Excelの比較的新しいバージョンでは、単一の最頻値を求める関数としてMODE.SNGL関数を使用します。
旧バージョンで使われていたMODE関数も互換性のために残っていますが、今後作成する表ではMODE.SNGL関数を選ぶと意図が伝わりやすいでしょう。
範囲指定に見出しであるC1を含めても、文字列は通常無視されます。
ただし、集計対象を明確にするためには、数値が始まるC2から最終データ行までを指定する方法がおすすめです。
関数の確定と結果の確認
数式を入力したらEnterキーを押して確定します。
結果セルには75と表示され、データ中で最も頻繁に現れた得点を確認できます。
最頻値は平均値のように計算で作られる数値ではなく、元のデータの中に実在する値です。
そのため、結果を見たら対象範囲を並べ替えたり、COUNTIF関数で件数を調べたりして、実際にその値が多いか確認すると安心です。
たとえば75の度数を確認する場合は、空白セルにCOUNTIF関数を入力します。
=COUNTIF(C2:C6,75)
結果が3になれば、75が3件含まれていることを確認できます。
最頻値がない場合の表示
同じ数値が一度も繰り返されないデータでは、MODE.SNGL関数はエラーを返します。
これは最頻値が存在しないという意味であり、数式が壊れたわけではありません。
資料にエラーを表示したくない場合は、IFERROR関数でメッセージに置き換えましょう。
=IFERROR(MODE.SNGL(C2:C6),”最頻値なし”)
この設定なら、すべての値が1回ずつしか出現しないときに最頻値なしと表示されます。
空白セルや文字列は基本的に計算対象から除外されますが、数値に見える文字列が混ざっていると判断を誤ることがあります。
入力形式も合わせて確認することが大切です。
【操作のポイント】最頻値を1つだけ知りたい場合は、MODE.SNGL関数で数値データの範囲だけを指定します。
MODE関数とMODE.MULT関数の使い分け
| A | B | C |
|---|---|---|
| 1 | 商品 | 購入数 |
| 2 | A | 2 |
| 3 | B | 3 |
| 4 | C | 2 |
| 5 | D | 3 |
| 6 | E | 5 |
続いては、最頻値が複数あるときのMODE関数とMODE.MULT関数の使い分けを確認していきます。
この表では2と3がともに2回ずつ出現しているため、最頻値は2つあります。
旧MODE関数との違い
MODE関数は以前からExcelで利用されてきた最頻値関数です。
現在でも=MODE(C2:C6)のように入力すれば結果を返しますが、複数の最頻値がある場合にすべてを返す用途には向きません。
新しいExcelでは単一ならMODE.SNGL、複数ならMODE.MULTという役割分担で考えると理解しやすくなります。
既存ファイルにMODE関数が入っていても、すぐに修正しなければならないわけではありません。
ただし、これから作る管理表では関数名で目的が分かる新しい関数を使うと、引き継ぎ時の確認がスムーズです。
単一の結果だけでよい場合、MODE.SNGL関数は複数の候補のうち1つを返します。
複数の最頻値を見落とす可能性があるため、度数が同数になりそうなアンケートなどでは注意しましょう。
MODE.MULT関数による複数結果
複数の最頻値をすべて表示したいときは、結果を表示する縦方向または横方向の空白セルを確保します。
たとえばE2セルに次の数式を入力します。
=MODE.MULT(C2:C6)
Microsoft 365やExcel 2021以降では、Enterキーで確定すると結果がスピルし、E2に2、E3に3のように自動表示されます。
スピル先に文字や数値が入っているとスピルエラーになるため、表示予定のセルは空けておきましょう。
古いExcelでは、必要な複数セルを選択してから数式を入力し、配列数式として確定する操作が必要になる場合があります。
利用中のExcelのバージョンによって挙動が異なる点も覚えておくと便利です。
複数最頻値の業務上の判断
複数の最頻値が出ることは、必ずしも異常ではありません。
購入数が2個と3個に分かれる、回答が満足と普通に集中するなど、利用者の傾向が二分されている可能性があります。
このような場合、最初の1件だけを見るより、MODE.MULT関数で候補を並べて分布全体を確認することが重要です。
最頻値だけで意思決定せず、平均値、中央値、最大値、最小値も合わせて見ると、極端な値の影響やデータの偏りを読み取りやすくなります。
【操作のポイント】最頻値が同数で複数あり得るデータでは、MODE.MULT関数のスピル範囲を確保して確認します。
度数表による最頻値の確認
| A | B | C |
|---|---|---|
| 1 | 得点 | 度数 |
| 2 | 60 | 2 |
| 3 | 70 | 4 |
| 4 | 80 | 6 |
| 5 | 90 | 3 |
続いては、度数表から最頻値を判断する仕組みについて解説していきます。
度数とは、ある値が何件あるかを示す件数です。
表では80点の度数が6で最大なので、最頻値は80点と判断できます。
COUNTIF関数による度数の計算
元データがE2からE15にあり、A2に数値の分類が入力されている場合、B2にCOUNTIF関数を入力します。
=COUNTIF($E$2:$E$15,A2)
最初の引数は数える対象となる元データの範囲です。
ドル記号を付けた絶対参照にしておくと、数式を下へコピーしてもE2からE15の範囲が動きません。
2番目の引数A2は、数えたい得点です。
このセル参照は相対参照なので、オートフィルで下にコピーするとA3、A4のように自動で切り替わります。
範囲だけ固定し、条件セルは動かすことが度数表の基本です。
オートフィルによる数式コピー
B2セルに数式を入力した後、セル右下にある小さな四角形であるフィルハンドルを下方向へドラッグします。
これにより、B3以降にもCOUNTIF関数がコピーされます。
元データの件数が多い場合でも、分類値を用意しておけば短時間で度数表を作成できます。
数式をコピーした後は、度数の合計が元データの件数と一致するか確認しましょう。
=SUM(B2:B5)
この合計がCOUNTA(E2:E15)などの元データ件数と一致しない場合、分類値の漏れ、空白、数値形式の違いを確認する必要があります。
最大度数からの最頻値の抽出
度数表が完成すると、最大の度数をMAX関数で求められます。
=MAX(B2:B5)
この例では6が返ります。
次に、その度数と一致する行の得点を探せば最頻値が分かります。
Excel 365ではXLOOKUP関数を使う方法も便利です。
=XLOOKUP(MAX(B2:B5),B2:B5,A2:A5)
度数が同じ分類が複数ある場合は、最初に見つかった値だけが返るため、FILTER関数や目視確認も併用しましょう。
【操作のポイント】度数表ではCOUNTIF関数で件数を集計し、最大の度数に対応する分類値を最頻値として読み取ります。
相対度数による割合の比較
| A | B | C | |
|---|---|---|---|
| 1 | 得点 | 度数 | 相対度数 |
| 2 | 60 | 2 | 13.3% |
| 3 | 70 | 4 | 26.7% |
| 4 | 80 | 6 | 40.0% |
| 5 | 90 | 3 | 20.0% |
続いては、度数を割合で表す相対度数について確認していきます。
相対度数は、全体に対して各数値がどれくらいの割合を占めるかを示す値です。
相対度数の数式
度数がB2からB5にあり、C列に相対度数を表示する場合は、C2に数式を入力します。
=B2/SUM($B$2:$B$5)
分子はその行の度数、分母は全度数の合計です。
分母を絶対参照にしておけば、数式を下へコピーしても全体件数を正しく参照できます。
相対度数は度数を全体件数で割った割合であり、結果は小数で表示されます。
ホームタブのパーセントスタイルを選ぶと、0.4を40.0パーセントのように見やすく表示できます。
度数と相対度数の違い
度数は件数そのものなので、同じ組織や同じ期間のデータを読むときに分かりやすい指標です。
一方、相対度数は母数が異なるデータを比較するときに役立ちます。
たとえばA店舗で80点が6件、B店舗で80点が8件だったとしても、全体の回答数が大きく違えば単純な件数比較では傾向を判断できません。
割合に直すことで、規模の異なる集団でも比較しやすくなるのが相対度数の利点です。
最頻値を報告するときに、80点が最も多いだけでなく全体の40パーセントを占めると伝えると、結果の重みを理解しやすくなります。
合計百分率の確認
相対度数を作成したら、列の合計が100パーセント前後になるかを確認します。
=SUM(C2:C5)
表示桁数を小数第1位などにしていると、四捨五入の影響で99.9パーセントや100.1パーセントになることがあります。
これは通常の表示上の丸めによるもので、元の計算値に問題がないことも多いです。
ただし、大きく100パーセントから外れる場合は、分母の範囲や数式コピーの状態を見直しましょう。
【操作のポイント】相対度数は度数を合計度数で割り、パーセント表示にして最頻値の割合を読み取ります。
最頻値を求める際のエラーと注意点
| A | B | C |
|---|---|---|
| 1 | 入力値 | 確認内容 |
| 2 | 75 | 数値 |
| 3 | “75” | 文字列の可能性 |
| 4 | 空白 |
続いては、MODE関数で発生しやすいエラーとデータ確認の注意点を解説していきます。
関数の書き方が正しくても、元データの形式がそろっていないと期待した最頻値にならないことがあります。
数値と文字列の混在
見た目が同じ75でも、数値の75と文字列として入力された75はExcel上では別の扱いになることがあります。
文字列として保存された数値が混ざると、MODE.SNGL関数やCOUNTIF関数の結果が想定と異なるかもしれません。
セル左上の緑色の三角形や左寄せ表示は、数値が文字列になっている目印です。
エラー表示の横にある警告ボタンから数値に変換するか、VALUE関数を使って形式を整えましょう。
データの取り込み直後に表示形式だけでなく、実際のデータ型を確認する習慣が重要です。
空白とエラー値の扱い
空白セルは通常、最頻値の計算では無視されます。
一方で、対象範囲内にエラー値があると、関数結果にもエラーが伝わる場合があります。
元データに#N/Aや#VALUE!などが含まれていないか、フィルター機能で確認しましょう。
欠損値を0として扱うか、空白のまま除外するかは集計目的によって異なります。
未回答を0と数えると最頻値が0になる可能性があるため、意味を確認せずに置換するのは避けるべきです。
範囲変更への対応
データが毎月追加される表では、固定されたC2:C100のような範囲では新しいデータを取りこぼすことがあります。
Excelのテーブル機能を使うと、行の追加に合わせて参照範囲が自動的に広がります。
テーブル化したデータなら、構造化参照を用いて最頻値を管理できます。
=MODE.SNGL(売上データ[購入数])
テーブル名や列名は、実際のブックに設定した名称に置き換えます。
更新頻度の高い集計表では、参照範囲の自動拡張が入力漏れの防止につながります。
【操作のポイント】最頻値の結果がおかしいと感じたら、数値形式、空白、エラー値、参照範囲の順に確認します。
まとめ 相対度数・度数・MODE関数でエクセルの最頻値を出す方法
| 確認項目 | 使う方法 |
|---|---|
| 最頻値を1つ確認 | MODE.SNGL関数 |
| 複数の最頻値を確認 | MODE.MULT関数 |
| 出現件数を確認 | COUNTIF関数 |
| 全体に占める割合を確認 | 度数÷合計度数 |
エクセルで最頻値を出す基本は、数値データの範囲にMODE.SNGL関数を指定することです。
最頻値が複数ある可能性を確認したいときは、MODE.MULT関数を使うと候補をまとめて表示できます。
また、COUNTIF関数で度数表を作成すれば、どの値が何回出現したかを可視化できます。
最頻値と度数を確認し、相対度数で割合まで示すとデータの説明力が高まります。
平均値や中央値と合わせて使い、目的に合ったデータ分析へつなげていきましょう。