データ分析を行う際、エクセルを使って最頻値を効率的に求めたいという場面は多いでしょう。
エクセルにはMODE関数やMODE.SNGL関数など、最頻値を簡単に算出できる便利な関数が用意されています。
Googleスプレッドシートでも同様の関数が使えるため、クラウド環境でのデータ解析にも対応できます。
しかし、「どの関数を使えばいいの?」「複数の最頻値があるときはどうするの?」と迷う方も多いのではないでしょうか。
本記事では、エクセルで最頻値を求めるMODE関数・MODE.SNGL関数の使い方から、複数の最頻値を求めるMODE.MULT関数の活用法まで、わかりやすく解説していきます。
スプレッドシートでの活用方法もあわせてご紹介しますので、ぜひ参考にしてください。
エクセルで最頻値を求める基本:MODE関数とMODE.SNGL関数
それではまず、エクセルで最頻値を求める基本的な関数であるMODE関数とMODE.SNGL関数について解説していきます。
エクセルには最頻値を求めるための専用関数があり、複雑な計算を手動で行う必要がなく、関数を入力するだけで瞬時に最頻値を算出できます。
MODE関数は古くから使われている定番の関数で、MODE.SNGLはその改良版として新しいバージョンのエクセルで提供されています。
MODE関数の基本的な使い方
MODE関数は、指定したデータ範囲から最頻値(最も頻繁に出現する値)を返す関数です。
MODE関数の構文:=MODE(数値1, [数値2], …)
または:=MODE(セル範囲)
例:A1からA10のデータの最頻値を求める場合
=MODE(A1:A10)
使い方は非常にシンプルで、関数の引数にデータが入力されたセル範囲を指定するだけです。
たとえば、A1〜A10に「3, 7, 5, 3, 9, 3, 5, 7, 3, 5」というデータが入力されている場合、「=MODE(A1:A10)」と入力すると「3」が返されます。
MODE関数は、最頻値が複数ある場合でも最初に見つかった最頻値のみを返すという仕様になっています。
なお、MODE関数はExcel 2010以降では互換性関数として位置づけられており、新しい環境ではMODE.SNGLの使用が推奨されています。
MODE.SNGL関数の特徴と使い方
MODE.SNGL関数は、MODE関数の後継として登場した関数で、基本的な動作はMODE関数と同じです。
MODE.SNGL関数の構文:=MODE.SNGL(数値1, [数値2], …)
または:=MODE.SNGL(セル範囲)
例:A1からA20のデータの最頻値を求める場合
=MODE.SNGL(A1:A20)
MODE.SNGL関数は「Single(単一)」の名が示すとおり、最頻値が一つだけ存在する場合に最も適した関数です。
MODE関数との主な違いは名前だけであり、計算結果はほぼ同じになります。
Excel 2010以降を使用している場合は、MODE.SNGLを使う方が将来的な互換性の観点からもおすすめです。
最頻値が存在しない場合(すべての値が1回ずつしか出現しない場合)は、「#N/Aエラー」が返されます。
MODE関数とMODE.SNGLの比較
| 比較項目 | MODE関数 | MODE.SNGL関数 |
|---|---|---|
| 対応バージョン | Excel全バージョン | Excel 2010以降 |
| 複数最頻値の処理 | 最初の値のみ返す | 最初の値のみ返す |
| 最頻値なし時の処理 | #N/Aエラー | #N/Aエラー |
| 推奨度(新環境) | 互換性関数(非推奨) | 推奨 |
基本的な使い勝手は両者ほぼ同じですが、最新のExcel環境ではMODE.SNGLを使うのが標準的です。
古いバージョンのExcelと共有するファイルを作成する場合は、互換性を考慮してMODE関数を使う選択肢もあるでしょう。
複数の最頻値を求めるMODE.MULT関数の使い方
続いては、複数の最頻値を同時に求めることができるMODE.MULT関数の使い方を確認していきます。
データの中に最頻値が複数ある場合、MODE関数やMODE.SNGLでは一つの値しか返されません。
すべての最頻値を一度に取得したい場合は、MODE.MULT関数を使うのが適切です。
MODE.MULT関数の基本構文と動作
MODE.MULT関数は、データ範囲の中に複数の最頻値が存在する場合、すべての最頻値を配列として返す関数です。
MODE.MULT関数の構文:=MODE.MULT(数値1, [数値2], …)
または:=MODE.MULT(セル範囲)
使用例:A1:A10 に「10, 20, 20, 30, 30, 40, 50」が入力されている場合
=MODE.MULT(A1:A10)
結果:20と30の二つが最頻値として返される
MODE.MULT関数を使う際は、複数のセルに結果を表示させる「配列数式」として入力する必要があります。
Excel 2019以前では「Ctrl + Shift + Enter」で配列数式として入力し、Excel 365以降では通常のEnterで自動的に配列として展開されます。
結果を表示するセル範囲を事前に選択してから入力するのがポイントです。
MODE.MULT関数の実践的な使い方
MODE.MULT関数を活用した具体的な手順を確認しましょう。
実践手順:
1. 最頻値を表示したいセル範囲(例:C1:C5)を選択する
2. =MODE.MULT(A1:A20) と入力する
3. Ctrl + Shift + Enter(Excel 2019以前)またはEnter(Excel 365)を押す
4. 最頻値がすべて表示される(存在しない分のセルには#N/Aが表示される)
最頻値の数があらかじめわからない場合は、少し多めのセル範囲を選択しておくと安心です。
最頻値が存在しないセルには「#N/Aエラー」が表示されますが、IFERROR関数と組み合わせることで表示を整えることができます。
たとえば「=IFERROR(MODE.MULT(A1:A20), “”)」とすることで、エラー箇所を空白で表示させることが可能です。
COUNTIF関数を使った最頻値の確認方法
MODE系関数以外でも、COUNTIF関数を使って各値の出現回数を集計し、最頻値を確認する方法があります。
COUNTIF関数を使った確認方法:
=COUNTIF(データ範囲, 確認したい値)
例:A1:A20の中で「80」が何回出現するかを確認する場合
=COUNTIF(A1:A20, 80)
COUNTIF関数で各値の出現回数を一覧化し、MAX関数で最大値を特定することで、最頻値を確認する方法も実務では有効です。
特に、テキストデータ(文字列)が含まれるデータセットでは、MODE関数は数値データにしか対応していないため、COUNTIF関数による方法が唯一の選択肢になることもあるでしょう。
Googleスプレッドシートで最頻値を求める方法
続いては、Googleスプレッドシートで最頻値を求める方法を確認していきます。
Googleスプレッドシートは、クラウドベースの表計算ツールとして広く使われており、エクセルと同様に最頻値を求める関数が使用できます。
スプレッドシートでもMODE関数やMODE.SNGL関数が使えるため、エクセルからの移行もスムーズです。
スプレッドシートでのMODE関数の使い方
Googleスプレッドシートでは、エクセルと同様の構文でMODE関数を使用できます。
スプレッドシートでのMODE関数の構文:
=MODE(数値1, 数値2, …)
または:=MODE(セル範囲)
例:A1からA15のデータの最頻値を求める場合
=MODE(A1:A15)
スプレッドシートのMODE関数も、最頻値が一つだけ返されるという点はエクセルと共通です。
また、スプレッドシートでは関数の入力補完機能が充実しており、「=MODE」と入力するだけで関数の候補と構文が表示されるため、初心者にも使いやすい設計になっています。
スプレッドシートとエクセルの関数比較
| 機能 | エクセル | Googleスプレッドシート |
|---|---|---|
| 単一最頻値 | MODE / MODE.SNGL | MODE |
| 複数最頻値 | MODE.MULT | MODE(配列数式として使用) |
| 文字列の最頻値 | COUNTIF + 工夫が必要 | COUNTIF + 工夫が必要 |
| 関数補完 | あり | あり(より詳細なヘルプ表示) |
スプレッドシートにはMODE.MULTに相当する専用関数はありませんが、配列数式を使うことで複数の最頻値を取得することができます。
両ツールともに基本的なMODE関数の使い方は同じであるため、どちらの環境でも同様の操作で最頻値を求めることができるでしょう。
スプレッドシートでのデータ解析活用例
Googleスプレッドシートでは、複数人でリアルタイムに編集・共有できるため、チームでのデータ解析に特に向いています。
アンケート結果のデータをスプレッドシートに集約し、MODE関数で最頻値を自動算出することで、集計作業の大幅な効率化が可能になります。
さらに、スプレッドシートのグラフ機能と組み合わせることで、最頻値を含むデータ分析結果を視覚的に表現することもできます。
特に教育現場やビジネスの現場では、クラウドでの共有・共同編集が可能なスプレッドシートの活用が広がっています。
エクセルで最頻値を求める際の注意点とエラー対処法
続いては、エクセルで最頻値を求める際の注意点とエラーへの対処法を確認していきます。
MODE系関数を使う際には、いくつかの注意点があります。
事前に把握しておくことで、エラーや誤った結果を防ぐことができるでしょう。
#N/Aエラーの原因と対処法
MODE関数で最もよく見られるエラーが「#N/Aエラー」です。
これは、データの中に同じ値が2回以上出現しない場合、つまり最頻値が存在しない場合に表示されます。
#N/Aエラーの対処法:IFERROR関数との組み合わせ
=IFERROR(MODE(A1:A10), “最頻値なし”)
この式により、最頻値が存在しない場合は「最頻値なし」と表示される
IFERROR関数を使うことで、エラーが発生した場合に代替のテキストや数値を表示させることができます。
見やすいレポートを作成する際には、エラー表示を適切に処理しておくと見栄えがよくなるでしょう。
テキストデータへのMODE関数の注意
MODE関数は数値データにのみ対応しており、テキスト(文字列)データには使用できません。
文字列データの最頻値を求めたい場合は、COUNTIF関数とMAX関数、INDEX関数・MATCH関数を組み合わせた複合式を使う方法が一般的です。
文字列データの最頻値を求める式(例):
=INDEX(A1:A10, MATCH(MAX(COUNTIF(A1:A10, A1:A10)), COUNTIF(A1:A10, A1:A10), 0))
※配列数式として入力(Ctrl + Shift + Enter)
やや複雑な式になりますが、テキストデータの最頻値を求める場合に有効な方法です。
Excel 365以降では動的配列関数が使えるため、より簡潔な式で同様の結果を得ることも可能です。
データに空白や文字列が混在する場合の対処法
実務のデータには空白セルや数値以外のデータが混在することがよくあります。
MODE関数は、空白セルや文字列を自動的に無視して計算してくれるため、数値のみを対象に最頻値を算出することができます。
ただし、意図せず数値として認識されているデータ(例:日付データ)が混在している場合は、誤った最頻値が算出されることがあるため注意が必要です。
データを整理・クリーニングしてからMODE関数を適用するのが、正確なデータ解析への近道といえるでしょう。
エクセルでのMODE関数活用まとめ:単一の最頻値はMODE.SNGL、複数の最頻値はMODE.MULTを使い分けましょう。#N/AエラーにはIFERRORで対処し、テキストデータにはCOUNTIF関数との組み合わせが有効です。データの種類に合わせた関数の選択が、正確なデータ解析の鍵となります。
まとめ
本記事では、エクセルで最頻値を求める方法として、MODE関数・MODE.SNGL関数・MODE.MULT関数の使い方を詳しく解説しました。
エクセルやGoogleスプレッドシートでは、関数を入力するだけで手軽に最頻値を算出できます。
基本的な最頻値の取得にはMODE.SNGL関数が最も使いやすく、複数の最頻値が存在する場合はMODE.MULT関数を活用するのが効果的です。
テキストデータや混在データへの対処方法を知っておくことで、さまざまな実務データにも柔軟に対応できます。
エラーへの対処としてはIFERROR関数との組み合わせが便利であり、より見やすいデータ集計レポートを作成できるでしょう。
Googleスプレッドシートでも同様の関数が利用できるため、クラウド環境でのチームデータ解析にも役立てることができます。
本記事を参考に、エクセルの最頻値関数を上手に活用し、データ解析の効率をぜひ高めていただければ幸いです。