
エクセルでもっとも多く出現する値(最頻値)を調べる、MODE関数の使い方をご紹介します。同率1位が複数ある場合の対処法、「2番目、3番目に多く出てくる値を抽出する方法」まで解説しているので、ぜひ参考にしてみてください。
最頻値を求める
最頻値を1つだけ抽出する(MODE.SNGL関数)

指定した「数値」の範囲の中で、もっとも多く出現する値を1つだけ抽出します。
例:=MODE.SNGL(A2:A5)
💡 ポイント:
- 最頻値が2つ以上ある場合、最初に出現する最頻値を返します。
- すべての数値が1回しか出現しない(最頻値がない)場合は、エラーになります。
MODE.SNGL関数の引数:(数値1, [数値2, …])
最頻値が「複数」ある場合すべて抽出する(MODE.MULT関数)

指定した「数値」の範囲の中で、もっとも多く出現する値をすべて抽出します。
例:=MODE.MULT(A2:A6)
MODE.MULT関数の引数:(数値1, [数値2, …])
📖 Excel 2019以前の場合:
スピル非対応(Excel 2019以前)の場合は、以下の手順で入力します。
- 関数を入力する前に、あらかじめ結果の展開先のセル(例:C2:C3)を選択しておきます。
- 数式を入力したら、
Ctrl+Shift+Enterを押して確定します。 - 余分にセルを選択していた場合、余ったセルには
#N/Aが表示されます。
「0」を除いた最頻値を求める

FILTER関数を使い「範囲」を「0以外」のデータに絞込み、その結果から最頻値を探します。
例:=MODE.SNGL(FILTER(A2:A6, A2:A6<>0))
FILTER関数の引数:(範囲, 条件, [空の場合])
📖 Excel 2019以前の場合:
以下の数式を入力し、Ctrl + Shift + Enter を押して確定します。
例:=MODE.SNGL(IF(A2:A6=0,"",A2:A6))
「2番目・3番目」に多い値を求める
降順に並び替えて見つける

【手順1】作業列に「出現回数」を出す
- データの隣の列(B列)に「作業列」を作成します。
- 以下のように入力し、オートフィルで数式をコピーします。
- 例:
=COUNTIF($A$2:$A$7,A2)
- 例:
💡 ポイント:COUNTIF関数の「検索範囲」のみ「$」を付けて固定します。これにより、数式を下にコピーしたときに「条件」のみ1つずつ下に移動します。
COUNTIF関数の引数: (検索範囲,検索条件)

【手順2】出現回数が多い順に並び替える
- ランキングを表示させたいセルに、以下のように入力します。
- 例:
=SORT(UNIQUE(A2:B7), 2, -1)
- 例:
📖 数式の解説:
- UNIQUE関数: 元データと作業列の範囲から、重複を除いた一意のデータを取り出します。
- SORT関数:一意のデータ範囲の「2列目」を基準に、「-1(多い順)」に並び替えます。
SORT関数の引数:(範囲, [並べ替える列], [順序], [基準方向])
📖 Excel 2019以前の場合:
以下の手順で、フィルター機能を使って降順に並び替えます。
- 元データと作業列の範囲を選択します。
- 「データ」タブにある「フィルター」 ボタンをクリックします。
- 作業列のフィルタアイコン(▼)を開き、「降順」をクリックして並び替えます。
「2番目・3番目」だけピンポイントで抽出する(Excel 2021以降)

【手順】
- 「降順に並び替えて見つける」の手順で、「作業列」に出現回数を出します。
- 結果を抽出したいセルに、以下のように入力します。
- 例:
=INDEX(SORT(UNIQUE(A2:B7),2,-1),D2,1)
- 例:
INDEX関数の引数:(参照, 行番号, [列番号])
📖 数式の解説:
- UNIQUE関数: 元データと作業列の範囲から、重複を除いた一意のデータを取り出します。
- SORT関数:一意のデータ範囲の「2列目」を基準に、「-1(多い順)」に並び替えます。
- INDEX関数:降順に並び替えられた範囲から、「n行目」のデータを抽出します。