スプレッドシートのMODE.MULT関数の使い方|複数の最頻値

スポンサーリンク

「最頻値を出したら1つしか返ってこないけど、同率1位が他にもあるはず」。そんな経験はありませんか?

MODE関数は最頻値を1つだけ返します。同じ回数の値が複数あっても、最小の値しか表示されません。見落としがあると分析の精度が下がってしまいますよね。

そんなときに使うのがMODE.MULT関数です。スプレッドシートで最頻値が複数ある場合に、すべての最頻値を配列で返してくれます。

この記事では基本の書き方からMODE関数との違い、実務での活用パターンまで紹介します。

スプレッドシートのMODE.MULT関数とは?

MODE.MULT関数(読み方: モード・マルト関数)は、指定した数値の中で最も多く出現する値(最頻値)をすべて返す関数です。「MULT」は「Multiple(複数)」の略です。

MODE関数は最頻値を1つだけ返します。一方MODE.MULT関数は、同じ出現回数の値が複数あればすべて返します。配列関数なので、結果が縦方向に複数セルへ展開されるのが特徴です。

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

  • 最頻値が複数あるとき、すべての最頻値を配列で返す
  • 結果は縦方向に自動展開される(スピル)
  • 最頻値が1つだけの場合は、その1つだけを返す
  • 空白セルや文字列は自動的にスキップする

NOTE

MODE.MULT関数はGoogleスプレッドシートの全バージョンで使えます。Excelでも同じ構文で利用できます。

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

基本構文

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

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

引数の説明

引数必須/任意説明
値1必須最頻値を求めたい最初の数値、セル参照、またはセル範囲
値2, …任意追加で最頻値に含めたい数値やセル範囲

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

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

  • 数値を直接入力: =MODE.MULT(3, 3, 5, 5, 7) → 3と5を返す
  • セル参照: =MODE.MULT(A1, B1, C1)
  • セル範囲: =MODE.MULT(A1:A20)

MODE.MULT関数の基本的な使い方

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

基本パターン: 複数の最頻値を取得する

B2からB11にテストの点数が入っているとします。点数は「70, 80, 80, 85, 85, 90, 90, 75, 60, 95」です。80・85・90がそれぞれ2回ずつ出現していますね。

=MODE.MULT(B2:B11)

結果は縦方向に80、85、90の3つが展開されます。MODE関数だと80しか返りません。MODE.MULT関数ならすべてわかりますよ。

最頻値が1つだけの場合

「70, 80, 80, 80, 85, 90」のように、80が3回で最多のケースを考えます。

=MODE.MULT(B2:B7)

結果は80の1つだけです。最頻値が1つしかない場合、MODE関数と同じ結果になります。

結果の展開先に注意する

MODE.MULT関数は結果を縦方向に展開します。展開先のセルにデータが入っていると#REF!エラーになります。

結果が何個返るかは事前にわかりません。展開先に十分な空きスペースを確保しておきましょう。

実務でのMODE.MULT関数活用パターン

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

パターン1: アンケートの同率最多回答を見つける

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

回答者評価(1〜5)
A4
B3
C4
D3
E5
F4
G3
H5
=MODE.MULT(B2:B9)

「3」と「4」がそれぞれ3回で同率最多です。結果は縦に3、4と展開されます。MODE関数だと「3」しか返りません。「4」も同率で多いという情報を見落とさずに済みますね。

パターン2: 売上データの頻出価格帯を特定する

注文データのB列に商品単価が入っているとします。

注文No単価(円)
1500
21000
3500
41500
51000
62000
71500
8500
91000
101500
=MODE.MULT(B2:B11)

500・1000・1500がそれぞれ3回で同率です。結果は縦に500、1000、1500と展開されます。よく売れる価格帯が複数あることが一目でわかりますよ。

パターン3: COUNTIFと組み合わせて出現回数も表示する

最頻値だけでなく「何回出現したか」も知りたいことがありますよね。

D2セルにMODE.MULT関数を入力したとします。E2セルに次の数式を入力します。

=COUNTIF(B2:B11, D2)

D列に最頻値、E列にその出現回数が表示されます。複数の最頻値それぞれの回数を確認できますよ。

パターン4: IFERRORでエラーを防ぐ

すべての値が1回ずつしか出現しないと#N/Aエラーになります。IFERROR関数で囲んでおくと安心です。

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

最頻値がないときは「最頻値なし」と表示されます。

パターン5: UNIQUEやSORT関数と組み合わせる

MODE.MULT関数の結果を整理したいとき、SORT関数と組み合わせると便利です。

=SORT(MODE.MULT(B2:B20))

最頻値を昇順で並べ替えて表示してくれます。結果が多い場合に見やすくなりますよ。

よくあるエラーと対処法

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

症状原因対処法
#N/Aエラーすべての値が1回ずつしか出現しないIFERRORで囲む。重複データがあるか確認する
#REF!エラー展開先のセルにデータがある展開先のセルを空にする
結果が1つしか返らない最頻値が本当に1つだけ正常動作。MODE関数と同じ結果になる
文字列が無視されるMODE.MULT関数は数値のみ対応文字列を数値コードに変換してから使う
日付が巨大な数値になる日付がシリアル値として計算された日付セルは範囲から除外する

#REF!エラーの対処

MODE.MULT関数で特に多いのが#REF!エラーです。配列の展開先にデータが入っていると発生します。

対処法はシンプルです。関数を入力するセルの下に空きスペースを確保しましょう。余裕をもって空けておくのがおすすめです。

MODE関数・MODE.SNGL関数との違い

MODE.MULT関数と似た関数にMODE関数MODE.SNGL関数があります。違いを整理しておきましょう。

項目MODEMODE.SNGLMODE.MULT
返す最頻値の数1つだけ1つだけすべて
複数の最頻値がある場合最小値を返す最小値を返すすべて返す
結果の形式単一の値単一の値配列(縦方向に展開)
用途代表的な最頻値を1つ知りたいMODEと同じ同率の最頻値をすべて把握したい

MODEとMODE.SNGLは同じ関数

MODE関数とMODE.SNGL関数は完全に同じ動作です。MODE.SNGLはMODEの別名(エイリアス)です。MODE.MULTとの対比で「Single(1つ)」と明示するために用意されています。

どれを使うべき?

  • 最頻値が1つだけほしいMODE関数で十分
  • 同率の最頻値をすべて把握したい → MODE.MULT関数を使う
  • 最頻値の有無がわからないデータ → MODE.MULT関数 + IFERRORの組み合わせが安心

迷ったらMODE.MULT関数を使っておけば見落としを防げます。最頻値が1つなら、MODE関数と同じ結果が返るだけですよ。

Excelとの違い

MODE.MULT関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。

項目ExcelGoogleスプレッドシート
構文=MODE.MULT(数値1, …)=MODE.MULT(値1, …)
動作すべての最頻値を返すすべての最頻値を返す
結果の展開Ctrl+Shift+Enterが必要(古いExcel)自動でスピル
空白セルスキップスキップ
文字列セルスキップスキップ

古いExcel(2019以前)では、Ctrl+Shift+Enterで確定する必要があります。Googleスプレッドシートでは通常のEnterで自動的にスピルします。

まとめ

MODE.MULT関数は、データの最頻値(最も多く出現する値)をすべて返す配列関数です。

ポイントを整理します。

  • 構文は =MODE.MULT(値1, [値2, ...]) ですべての最頻値を返す
  • 結果は縦方向に自動展開される(スピル)
  • 最頻値が1つなら、MODE関数と同じ結果になる
  • 展開先にデータがあると#REF!エラーになる
  • MODE関数とMODE.SNGL関数は最頻値を1つだけ返す
  • アンケート集計や価格帯分析で同率を見落とさずに済む

まずは =MODE.MULT(範囲) で複数の最頻値がないか確認してみてください。MODE関数と比べると、同率の値が隠れていたことに気づくかもしれませんよ。


この記事で紹介した関数・関連記事

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