Excel(エクセル)でアンケート結果などを表にまとめたとき、最頻値(最も結果が多い値)を表示させる方法をご存じですか?
最頻値を求めるときは、MODE.SNGL関数(もしくはMODE関数)を利用します。
また、最頻値が同数で複数存在する場合は、MODE.MULT関数を使用します。
この記事では、以下の内容をお届けします。
紹介する内容
1.MODE.SNGL関数とMODE関数とMODE.MULT関数の違い
2.MODE.SNGL関数で最頻値を求める方法
3.MODE.MULT関数で複数の最頻値を求める方法
4.最頻値の次に多い値を調べる方法(2番目、3番目・・・)
MODE.SNGL関数とは?
MODE.SNGL関数の読み方は、「モード・シングル関数」です。
MODE.SNGL関数は、最も頻繁に出現する数値 (=最頻値) を返す関数です。
最頻値(さいひんち)のことを英語では「モード」といい、シングルは「単独の」を意味します。
例えば、MODE.SNGL関数を使えば、下の図のD列の「1~5」の数値の中から最も多く出現する数値を調べることができます。
下の場合は、「5」が1回、「4」が3回、「3」が1回、「1」が1回現れるので、最頻値は「4」と求められます。
MODE.SNGL関数とMODE関数の違いは?
MODE.SNGL関数に似た関数にMODE関数がありますが、MODE関数はMODE.SNGL関数の旧関数です。
もともとMODE関数の1つが存在していましたが、MODE.SNGL関数とMODE.MULT関数に分かれました。
共に互換性があるのでどちらも使えますが、MODE関数はいずれ使えなくなるので、MODE.SNGL関数を使うようにしましょう。
また、MODE.MULT関数も、最も頻繁に出現する数値を返しますが、最頻値が複数ある場合に対応できる関数なので、機能は少し異なります。(使い方は後半の見出しを参照ください)
MODE関数の3種類
MODE関数:最頻値を求める ※旧関数
MODE.SNGL関数:最頻値を求める
MODE.MULT関数:最頻値を求める (複数ある場合にも対応可能)
MODE.SNGL関数(MODE関数)の使い方
MODE.SNGL関数を使って、最頻値を求める方法を詳しく解説していきます。
MODE.SNGL関数の書式と引数
MODE.SNGL関数の書式と引数は以下の通りです。
=MODE.SNGL(値1,値2,値3,・・・)
引数「値」には、最頻値を求めたいセル範囲やセル番号を指定します。
例:「=MODE.SNGL(D3:D8)」「=MODE.SNGL(D3,D4,D5,D6,D7,D8)」
MODE.SNGL関数を使った事例
MODE.SNGL関数を使う手順と事例を紹介します。
まず、最頻値を表示したいセルにMODE.SNGL関数を挿入します。
=MODE.SNGL(
最頻値を求めたいセル範囲をドラッグで選択します。
=MODE.SNGL(D3:D8)
EnterキーでMODE.SNGL関数を確定すると、D列の値の中の最頻値が「4」であることが分かりました。
MODE.SNGL関数でエラーが表示される場合
MODE.SNGL関数の結果が、エラー値「#N/A」が表示されることがあります。
その一番の原因は、最頻値を求めるセル範囲が数値以外になっていることです。
例えば、下の表のC列の最頻値を求めたくても、C列の「A」「B」「C」は数値ではないため、最頻値を求めることができません。
数値以外の最頻値を求める方法
上記のとおり、MODE.SNGL関数は数値セル以外では最頻値を求めることができません。
数値以外の文字列で最頻値を求める場合は、COUNTIF関数とRANK関数を用います。
まず、表の枠外にCOUNTIF関数を挿入して、それぞれの文字列のセルの個数を求めます。
=COUNTIF($C$3:$C$8,"A")
次に、セルの個数の横にRANK関数を挿入して、セルの個数の多い順にランクをつけます。ランク”1”が最頻値です。
=RANK(G3,$G$3:$G$5,0)
MODE.MULT関数は「複数の最頻値」を求める
同数で最頻値が複数ある場合は、MODE.MULT関数を使用します。
MODE.MULT関数は、「モード・マルチ関数」と読みます。複数を意味する英語「multiple」が由来です。
MODE.MULT関数の書式と引数は以下の通りで、MODE.SNGL関数と同じです。
=MODE.SNGL(値1,値2,値3,・・・)
ただ、複数の最頻値を返す必要があるため、エクセルのバージョンがExcel2021以降かExcel2019以前かによって使い方が異なります。
MODE.MULT関数の使い方(Excel2021以降)
Excel2021以降のバージョンやMicrosoft365(サブスク)を利用しているのであれば、MODE.MULT関数の使い方は簡単です。
MODE.MULT関数を挿入して、Enterキーを押して確定してください。
=MODE.MULT(D3:D8)
そうすると、D列には「3」が2つ、「4」が2つと最頻値が2つあるので、MODE.MULT関数の結果が隣接セルに拡張されて、G3セルに「3」とG4セルに「4」と表示されます。
このように、「数式の結果がセルからあふれて、隣接したセルにも拡張されて出力される機能」のことをスピルといいます。
下の記事でスピルの基本操作を紹介しているので、興味のある方は参考にしてください。
MODE.MULT関数の使い方(Excel2019以前)
Excel2019以前のバージョンで、MODE.MULT関数を使う方法を紹介します。
MODE.MULT関数を挿入して、「Ctrl」キーと「Shift」キーを押しながら、「Enter」キーを押して確定してください。(「Ctrl+Shift+Enter」キー)
そうすると、数式が中括弧「{}」で囲われて、隣接したセルに最頻値が複数個表示されます。
{=MODE.MULT(D3:D8)}
このように、1つの数式で複数の答えを計算する機能を「配列数式」といいます。下の記事で配列数式の基本操作を紹介しているので、興味のある方は参考にしてください。
2番目、3番目に多い値を調べる場合
最頻値の次に多い2番目、3番目の値を求める方法を紹介します。
1つは関数を使用する方法で、2つ目はピボットテーブルを使用する方法です。
COUNTIF関数で2番目、3番目を求める
2ばね最頻値を求める場合は、COUNTIF関数とRANK関数を用います。
まず、表の枠外にCOUNTIF関数を挿入して、それぞれの値のセルの個数を求めます。
=COUNTIF($D$3:$D$10,F3)
次に、セルの個数の隣の列にRANK関数を挿入して、セルの個数の多い順にランクをつけます。そうすると、ランクの数値が数字の大きい順を表しているので、2番目、3番目の数値を確認することができます。
=RANK(G3,$G$3:$G$7,0)
ピボットテーブルで2番目、3番目を求める
関数を使わなくても、ピボットテーブルを使えばどの項目がどれだけ多いか調べることができます。
まず、表を選択し、「挿入」タブの「ピボットテーブル」を選択します。
「ピボットテーブルのフィールド」画面で数値の多さを調べたい項目を、「行」と「値」フィールドにドラッグ&ドロップします。
ピボットテーブルの結果が表示されるので、右クリックメニューから値の集計方法を「データの個数」に変更します。
そうすると、値ごとのセルの個数が表示されます。個数が最も多いものが最頻値で、次に多いものが2番目に多い値となります。
ピボットテーブルの使い方を詳しく知りたい方は、以下の記事を参考にしてください。