社内アンケートを集計していて「最も多かった回答」を出そうとしたら、同じ票数のものが2つも3つもあった。そんなとき、普通の最頻値関数だと1つしか返ってこなくて困った経験はないでしょうか。
そこで活躍するのが MODE.MULT関数 です。同率1位の最頻値をすべて配列としてまとめて返してくれるので、「同点トップが複数あるケース」も漏らさず取得できます。
この記事では、MODE.MULT関数の構文から、CSE入力と動的配列スピルの違い、MODE.SNGLとの使い分け、よくあるエラーの読み解き方までを実例で整理します。
ExcelのMODE.MULT関数とは?
ExcelのMODE.MULT関数(読み方:モード・マルト)は、データセットの中で最も頻繁に出現する数値(最頻値)を、複数まとめて配列で返す関数です。関数名は「MODE(最頻値)+MULTiple(複数)」の組み合わせで、「複数の最頻値」を意味します。
通常の最頻値関数(MODEやMODE.SNGL)は、同じ最高頻度の値が複数あっても 最初に見つかった1つだけ を返します。一方MODE.MULTは、同率1位の値を すべて配列として返す のが最大の特徴です。
たとえば 1, 2, 3, 3, 4, 5, 5 というデータでは、3も5も2回ずつ登場します。MODE.SNGLでは「3」だけが返りますが、MODE.MULTを使えば「3」と「5」の両方を取得できます。
NOTE
MODE.MULTはExcel 2010で追加された関数です。それ以前のExcelには存在せず、後継関数として登場しました。Excel 2010以降であれば、Mac版・Windows版を問わず利用できます。
MODE.MULT関数の書き方(構文と引数)
MODE.MULT関数の構文は次のとおりです。
=MODE.MULT(数値1, [数値2], ...)
引数の仕様は次の表にまとめました。
| 引数 | 必須 | 説明 |
|---|---|---|
| 数値1 | 必須 | 最頻値を求めたい1つ目の数値またはセル範囲 |
| 数値2, … | 任意 | 2つ目以降の数値またはセル範囲(最大254個まで指定可) |
戻り値は 縦方向の配列 です。同率最頻値の個数だけ縦に値が並び、選択範囲が余ったセルには #N/A が表示されます。これは「ここまでで最頻値は出尽くしました」というサインで、エラーではなく正常動作です。
引数に指定したセルのうち、テキスト・論理値・空白セルは無視されます。ただし数値の 0(ゼロ) はカウント対象になる点に注意してください。
MODE.SNGLとの違いを早見表で整理
「最頻値を返す関数」は3種類あります。それぞれの違いを整理しておきましょう。
| 比較項目 | MODE | MODE.SNGL | MODE.MULT |
|---|---|---|---|
| 戻り値 | 1つ | 1つ | 複数(配列) |
| 同頻度の値が複数あるとき | 最初に現れた値のみ | 最初に現れた値のみ | すべて返す |
| 入力方法 | 通常Enter | 通常Enter | CSE または通常Enter(スピル対応版) |
| 関数の分類 | 互換性関数 | 統計関数 | 統計関数 |
| 導入時期 | Excel 2007以前 | Excel 2010以降 | Excel 2010以降 |
TIP
「同率最多が出るかもしれない」場合はMODE.MULT、「最頻値は1つで十分」な場合は MODE.SNGL関数 を選ぶのが基本です。MODE.SNGLは1つしか返ってこないため、同率最多の見落としに気づけないリスクがあります。
実務例:アンケート評価点の同率最多回答を全部取得する
社員研修の満足度アンケート(5段階評価)を集計するシーンで考えてみます。10人の回答が次のように集まりました。
| 回答者 | 評価点 |
|---|---|
| 田中 | 5 |
| 佐藤 | 4 |
| 鈴木 | 5 |
| 高橋 | 3 |
| 伊藤 | 4 |
| 渡辺 | 5 |
| 山本 | 4 |
| 中村 | 2 |
| 小林 | 4 |
| 加藤 | 5 |
評価点が B2:B11 に入っているとします。最頻値を求めると、4点が4回、5点も4回登場しており、同率1位という状況です。
Microsoft 365 / Excel 2021以降の場合(動的配列スピル)
任意のセル(たとえば D2)に通常通り入力するだけです。
=MODE.MULT(B2:B11)
Enterを押すと、D2に「4」、D3に「5」が 自動でスピル展開 されます。範囲をあらかじめ選択する必要はありません。
Excel 2019以前の場合(CSE入力)
「同率最多が何個出るか」が事前に分からないので、念のため数個ぶんのセル(たとえば D2:D6)を縦に選択しておきます。続けて数式バーに次の数式を入力します。
=MODE.MULT(B2:B11)
そのまま Ctrl + Shift + Enter を押すと、配列数式として確定されます。数式バーには {=MODE.MULT(B2:B11)} と中括弧が付き、選択範囲に「4」「5」「#N/A」「#N/A」「#N/A」のように展開されます。
WARNING
Excel 2019以前で通常のEnterで確定すると、最初の1つ(この例では「4」)だけが表示され、残りの最頻値が取得できません。古いExcelで使うときは必ず Ctrl + Shift + Enter で確定してください。
CSE入力と動的配列スピルの違い
MODE.MULTの入力方法は、Excelのバージョンによって2通りに分かれます。
| 項目 | CSE入力(旧来Excel) | 動的配列スピル(新Excel) |
|---|---|---|
| 対象バージョン | Excel 2010〜2019 | Microsoft 365、Excel 2021以降 |
| 入力範囲 | 事前にセル範囲を選択 | 単一セルに入力するだけ |
| 確定キー | Ctrl + Shift + Enter | 通常のEnter |
| 数式表示 | {=MODE.MULT(...)} | =MODE.MULT(...) |
| 結果が増減した場合 | 範囲を再指定して再入力 | 自動的に縮小・拡大 |
新しい動的配列スピルのほうが圧倒的に扱いやすいです。Microsoft 365をお使いの方は、結果が何個になるかを気にせず1セルに入力するだけで済みます。
NOTE
スピル展開時、隣接セルにすでにデータが入っていると #SPILL! エラーになります。スピル先のセル(この例ではD3以降)が空であることを確認してから入力してください。
#N/Aエラーが返る2つのパターン
MODE.MULT関数を使うと #N/A エラーをよく目にします。これには2つのパターンがあり、意味がまったく違うので区別しておきましょう。
パターン1:余ったセルに表示される #N/A(正常動作)
CSE入力で5セル選択したけれど、実際に最頻値が2つしかなかった場合、3〜5番目のセルには #N/A が表示されます。これは「これ以上の最頻値はありません」という終端マーカーで、エラーではなく正常動作です。
パターン2:すべてのセルに #N/A が表示される(重複なし)
データセットに重複する値が1つもない(全員バラバラ)場合、最頻値そのものが定義できないため、すべてのセルに #N/A が返ります。これは仕様上の動作で、データ側の特性を示しています。
TIP
パターン2が表示されたら「データに重複がないので最頻値が存在しない」と読み替えましょう。エラーを隠したい場合は
=IFERROR(MODE.MULT(範囲), "重複なし")で文字列に置き換えられます。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
#N/A(余りセル) | 最頻値がそれ以上ない | 正常動作。範囲を狭めるかIFERRORで非表示 |
#N/A(全セル) | データに重複値が一つもない | データ側を確認。IFERRORで代替表示 |
#VALUE! | 範囲内に文字化けや特殊な値がある | 範囲内の値が数値であることを確認 |
#SPILL! | スピル先のセルにデータが入っている | スピル先のセルを空にする |
#NAME? | Excel 2007以前で実行している | Excel 2010以降を使うか、MODE関数で代替 |
特に多いのが #SPILL! です。動的配列スピル対応のExcelで MODE.MULT を1セルに入れたとき、隣接セルが埋まっていると展開できません。表組みの中で使うときは、結果が広がる方向のセルを空けておきましょう。
関連する最頻値・統計関数
中心傾向や頻度の分析では、MODE系のほかにもいくつか関数を組み合わせて使うと便利です。
| 関数 | 役割 |
|---|---|
| MODE.SNGL | 最頻値を1つだけ返す(同率最多があっても最小値を返す) |
| MODE | 旧来の最頻値関数(互換性関数。新規利用は MODE.SNGL を推奨) |
| AVERAGE | 算術平均を求める |
| MEDIAN | 中央値を求める |
| COUNTIF | 特定の値の出現回数をカウント |
| FREQUENCY | 度数分布を求める |
最頻値を出した後に「その値が何件あるのか」を数えたい場合は COUNTIF関数 と組み合わせると便利です。
まとめ
ExcelのMODE.MULT関数は、最頻値が複数あるケースを漏らさず抽出できる配列関数です。要点を整理しておきます。
- 構文:
=MODE.MULT(数値1, [数値2], ...) - 戻り値: 縦方向の配列(同率最頻値をすべて含む)
- Microsoft 365 / Excel 2021以降: 通常Enterで自動スピル展開
- Excel 2019以前: 範囲を選択して Ctrl + Shift + Enter(CSE)
- 余りセルの #N/A は正常動作(最頻値の終端マーカー)
- 全セル #N/A はデータに重複がない ことを示す
アンケート集計で「同率1位の回答を全部出したい」場面や、製品評価で「同じ得票数のレビュー点を全部取り出したい」場面では、MODE.MULTがそのまま答えを返してくれます。1つだけ取得したい場合は MODE.SNGL関数 と使い分けましょう。
中心傾向の3指標である AVERAGE関数、MEDIAN関数、MODE.MULT/MODE.SNGLを揃えて使えるようになると、データの「真ん中」を多角的に捉えられるようになります。
