ExcelのMODE関数の使い方|最頻値の求め方とエラー対処法

スポンサーリンク

「アンケートで一番多い回答はどれだろう」「売れ筋サイズを数字でパッと知りたい」。Excelで集計するとき、こんな疑問が浮かびませんか?

平均値だけでは「最も選ばれた値」はわかりません。手作業で数えるのも面倒ですし、データが増えると見落としも起きがちですよね。

そんなときに使うのがExcelのMODE関数です。指定した範囲から最頻値(最も多く出現する値)を一発で返してくれます。

この記事では基本の書き方からエラー対処法、後継関数との違いまで紹介します。

ExcelのMODE関数とは?

MODE関数(読み方: モード)は、指定した数値の中で最も多く出現する値(最頻値)を返す関数です。「Mode」は英語で「最頻値」や「流行」を意味します。

最頻値とは、データの中で出現回数がいちばん多い値のことです。AVERAGE関数の平均値、MEDIAN関数の中央値と並んで、データの代表値としてよく使われます。

MODE関数にできることをまとめると、次のとおりです。

  • 指定したセル範囲で最も多く出現する数値を返す
  • 複数の離れた範囲をまとめて最頻値を求める
  • 空白セルや文字列は自動的にスキップする
  • アンケートやサイズ集計など離散データに向いている

NOTE

MODE関数は互換性のために残されている関数です。新しい数式を書くときは後継のMODE.SNGL関数を使いましょう。違いは後半の比較セクションで解説します。

対応バージョン: Microsoft 365 / Excel 2024 / 2021 / 2019 / 2016

MODE関数の書き方(構文と引数)

基本構文

=MODE(数値1, [数値2], ...)

カッコの中に、最頻値を求めたい数値やセル範囲を指定します。

引数の説明

引数必須/任意説明
数値1必須最頻値を求めたい最初の数値、セル参照、またはセル範囲
数値2〜255任意追加の数値やセル範囲(最大255個まで)

引数が2つ以上ある場合は、カンマで区切ります。

引数に指定できるものは3種類です。

  • 数値を直接入力: =MODE(3, 3, 5, 7) → 結果は3
  • セル参照: =MODE(A1, B1, C1) → 各セルの値の最頻値
  • セル範囲: =MODE(A1:A10) → A1からA10の最頻値

引数の扱いで押さえておきたいポイントがあります。

  • テキスト・論理値(TRUE/FALSE)・空白セル → 無視される
  • ゼロ(0)→ カウント対象
  • エラー値や数値に変換できない文字列 → エラーの原因

MODE関数の基本的な使い方

ここからは実際にMODE関数を使ってみましょう。

セル範囲の最頻値を求める

B2からB9にテストの点数が入っているとします。点数は「70, 80, 80, 85, 90, 80, 75, 85」です。

=MODE(B2:B9)

「80」が3回で最も多いため、結果は80です。

複数の最頻値がある場合

「70, 80, 80, 90, 90」のように、80と90が同じ回数のケースです。

=MODE(B2:B6)

結果は80です。複数の最頻値がある場合、MODE関数は最小の値を返します。90ではなく80が返る点に注意してください。

すべての最頻値を取得したいとき

MODE.MULT関数を使うと、複数の最頻値をすべて配列で返せます。詳しくは後半の比較セクションで解説しますよ。

複数の範囲をまとめて指定する

離れた範囲をまとめて計算することもできます。

=MODE(B2:B10, D2:D10)

カンマで区切るだけで、離れた範囲も一度に計算してくれます。

実務で使えるMODE関数の活用例

基本がわかったところで、実務で役立つパターンを見ていきましょう。

アンケートの最多回答を特定する

5段階評価のアンケート結果がB列に入っているとします。

回答者評価(1〜5)
Aさん4
Bさん3
Cさん4
Dさん5
Eさん4
Fさん3
Gさん4
=MODE(B2:B8)

結果は4です。「4」が4回で最多だとわかります。最も選ばれた評価を一発で確認できますよ。

COUNTIFと組み合わせて出現回数も表示する

最頻値だけでなく「何回出現したか」も知りたいことがありますよね。COUNTIF関数と組み合わせると便利です。

=MODE(B2:B20)
=COUNTIF(B2:B20, MODE(B2:B20))

1つ目のセルに最頻値、2つ目のセルにその出現回数が表示されます。レポートに「最頻値: 4(7回出現)」と書きたいときに使えます。

IFERRORでエラーを防ぐ

MODE関数は、すべての値が1回ずつしか出現しないと#N/Aエラーになります。データが入る前のテンプレートでは特に注意が必要です。

=IFERROR(MODE(B2:B10), "最頻値なし")

エラーの代わりに「最頻値なし」と表示します。安心して使えますよ。

よくあるエラーと対処法

MODE関数で困ったら、以下のパターンを確認してみてください。

症状原因対処法
#N/Aエラーすべての値が1回ずつしか出現しないIFERRORで囲む。重複データがあるか確認する
#N/Aエラー範囲にデータが1つもない参照範囲にデータが入っているか確認する
#VALUE!エラー数値に変換できない文字列が含まれている文字列セルを範囲から除外する
想定と違う値が返る複数の最頻値があり最小値が返されているMODE.MULT関数で全最頻値を確認する
文字列が無視されるMODE関数は数値のみ対応文字列を数値コードに変換してから使う

#N/Aエラーの対処

MODE関数で最も多いのは#N/Aエラーです。すべてのデータが一意(重複なし)のとき発生します。

=IFERROR(MODE(B2:B10), "該当なし")

IFERROR関数で囲めば、エラーの代わりにメッセージを表示できます。

#VALUE!エラーの対処

数値に変換できない文字列が引数に直接含まれると発生します。セル範囲を参照している場合は文字列が無視されるため起きません。

=MODE("abc", 1, 2, 2)   → #VALUE!エラー
=MODE(A1:A4)             → 文字列セルは無視される

引数に直接値を入力するときは、数値だけを指定しましょう。

MODE・MODE.SNGL・MODE.MULTの違いと使い分け

Excel 2010以降、MODE関数には後継関数が追加されました。3つの違いを表にまとめます。

比較項目MODEMODE.SNGLMODE.MULT
導入バージョンExcel 2003以前Excel 2010Excel 2010
現在の位置づけ非推奨(互換性のみ)推奨推奨
戻り値の数1つ1つ複数(配列)
複数最頻値の扱い最小値を返す最小値を返すすべて返す
引数の最大数255254254
入力方法通常Enter通常EnterCSE(旧版)/ 通常Enter(動的配列)

どれを使えばいい?

使い分けの目安は次のとおりです。

  • 新しく数式を書くとき → MODE.SNGL を使いましょう。MODEと同じ結果が返ります
  • 複数の最頻値をすべて知りたいとき → MODE.MULT を使いましょう
  • 既存のブックにMODEがある場合 → そのまま使って問題ありません。わざわざ書き換える必要はないですよ

MODE.MULTの使い方

MODE.MULTは複数の最頻値を配列で返します。「70, 80, 80, 90, 90」のようなデータで試してみましょう。

=MODE.MULT(B2:B6)

Microsoft 365やExcel 2021以降なら、通常のEnterで入力するだけです。結果が複数セルに自動展開(スピル)されます。80と90の両方が表示されますよ。

Excel 2019以前の場合は、結果を表示するセル範囲を選択してからCtrl+Shift+Enterで確定します。数式バーに {=MODE.MULT(B2:B6)} と波カッコが表示されれば成功です。

AVERAGE・MEDIAN・MODEの3代表値を使い分ける

統計で「代表値」と呼ばれる3つの指標を比較します。どれを使うかで分析結果が変わるため、特徴を押さえておきましょう。

項目AVERAGE(平均値)MEDIAN(中央値)MODE(最頻値)
計算方法合計 / 個数並べたとき真ん中の値最も多く出現する値
外れ値の影響大きく受ける受けにくい受けにくい
向いているデータ偏りが少ない均質なデータ外れ値を含むデータカテゴリ的・離散的なデータ
具体例テストの平均点給与の実態把握アンケートの最多回答

具体例で比べてみよう

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つとも出して比較するのがおすすめですよ

まとめ

MODE関数は、データの最頻値(最も多く出現する値)を求めるExcelの関数です。

ポイントを整理します。

  • 構文は =MODE(数値1, [数値2], ...) で最頻値を返す
  • 数値のみ対応。文字列や空白は自動スキップ
  • 複数の最頻値がある場合は最小値が返される
  • すべてのデータが一意だと#N/Aエラーになる
  • IFERRORと組み合わせればエラーを回避できる
  • 新規作成時はMODE.SNGL関数を使うのがおすすめ

まずは =MODE(範囲) でデータの最頻値を確認するところから試してみてください。AVERAGE関数MEDIAN関数と並べて比較すると、データの特徴がよく見えてきますよ。

タイトルとURLをコピーしました