Excel 最頻値(現れる頻度が最も高い数値)を取得(MODE.SNGL関数、MODE.MULT関数)
MODE.SNGL関数とMODE.MULT関数は、最頻値(モード)を取得する関数でMODE関数の新しいバージョンです。
そちらは今後、使用できなくなる可能性があるため
MODE.SNGL関数とMODE.MULT関数を使用しましょう。
この記事では関数の仕様と使用例を紹介します。
仕様
MODE.SNGL関数
一つの最頻値を取得します。
最頻値が複数ある場合は最初に現れる値が結果になります。
最頻値がない場合は#N/Aエラーになります。
=MODE.SNGL(数値1~255)
引数 | 省略時の値 | 説明 |
---|---|---|
数値1~255 | 省略不可 | 最頻値を求める数値を指定。 |
MODE.MULT関数
複数の最頻値を取得します。
=MODE.MULT(数値1~255)
引数 | 省略時の値 | 説明 |
---|---|---|
数値1~255 | 省略不可 | 最頻値を求める数値を指定。 |
スピルを利用できないバージョンの場合、配列数式で記述する必要があります。
使用例
サンプルとして下記のデータを使用します。最頻値は2と9です。
MODE.SNGL関数
MODE.SNGL関数はSUM関数のようにデータのセル範囲を指定するのみです。
最頻値は一つしか取得されません。
複数ある場合はデータの中で最初(最も左上)に登場する値が結果になります。
下の例では2と9が最頻値ですが、数値指定の中で9が最初に出てくるため結果が9になります。
MODE.MULT関数
MODE.MULT関数はMODE.SNGL関数と違い、最頻値が複数ある場合にも適用できます。
スピルが対応されているバージョンであれば配列数式が不要です。
スピルが対応されてないバージョンの場合、配列数式が必須のため使い勝手が悪くなります。
まずMODE.SNGL関数と同様にデータ範囲を引数に関数を作ります。
複製するため範囲は絶対参照にします。
MODE.MULT関数を縦方向に数式コピーします。
配列数式にする前は全て同じ結果になり最初の最頻値の9のみ表示されます。
次に数式セルを全て選択し数式バーで[Ctrl]+[Shift]を押しながら
[Enter]を押して配列数式に変換します。数式が{}で囲まれたら成功です。
最初の最頻値の9と、2番目の2が表示されます。
続く最頻値がなくなると#N/Aエラーになります。
MODE.MULT関数を横方向に使用することも可能です。
TRANSPOSE関数の併用が必要です。
セル範囲以外を指定
関数の引数にセル範囲を結果として返す関数を指定することも可能です。その場合、最頻値はその関数の結果から取られます。
以下はセル範囲を結果として返す関数の一覧です。
関数 | 分類 | 説明 |
---|---|---|
TEXTSPLIT | 文字列操作 | 指定文字を基準にテキストをセルに分割 |
XLOOKUP | 検索/行列 | 検索値に一致するデータを検索 |
FILTER | 検索/行列 | 条件に一致するデータ一覧を取得 |
UNIQUE | 検索/行列 | 指定セル範囲のデータ重複を削除 |
SEQUENCE | 検索/行列 | 連番を複数セルに自動作成 |
SORT | 検索/行列 | セル範囲を指定列で並び替える |
SORTBY | 検索/行列 | セル範囲を複数の基準列を指定して並び替える |
DROP | 検索/行列 | 指定セル範囲から指定数の行・列を削除 |
TAKE | 検索/行列 | 指定セル範囲から指定数の行・列を取得 |
TOCOL | 検索/行列 | 指定セル範囲を1列に並べる |
TOROW | 検索/行列 | 指定セル範囲を1行に並べる |
EXPAND | 検索/行列 | 指定セル範囲を拡張 |
CHOOSEROWS | 検索/行列 | 指定セル範囲から指定位置の行を取得 |
CHOOSECOLS | 検索/行列 | 指定セル範囲から指定位置の列を取得 |
WRAPROWS | 検索/行列 | 1列または1行のセル範囲を、指定の行数で並び替える |
WRAPCOLS | 検索/行列 | 1列または1行のセル範囲を、指定の列数で並び替える |
VSTACK | 検索/行列 | 複数のセル範囲を行方向に結合 |
HSTACK | 検索/行列 | 複数のセル範囲を列方向に結合 |
TRANSPOSE | 検索/行列 | 指定セル範囲の行・列を入れ替えたセル範囲を作成 |
配列で指定することも可能です。
=MODE.MULT({10,1,2,5,10,1})
=MODE.SNGL({10,1,2,5,10,1})
単純にカンマ区切りで複数の値も指定可能です。
=MODE.MULT(10,1,2,5,10,1)
=MODE.SNGL(10,1,2,5,10,1)
使用上の注意など
今回は1桁の数字のためそのまま使用しましたが
数値が大きくなるとバラけてしまい最頻値が出ないか、出す意味が薄くなります。
そういった場合はROUND系関数で小さい桁を切るか
ヒストグラムを作成して最頻値も含めた全体的な傾向を出すと良いでしょう。
(最も高い場所が最頻値)
Excelを効率的に習得したい方へ
当サイトの情報を電子書籍用に読み易く整理したコンテンツを
買い切り950円またはKindle Unlimited (読み放題) で提供中です。
Word-A4サイズ:1,400ページの情報量で
(実際のページ数はデバイスで変わります)
基本的な使い方、関数の解説(140種類)、
頻出テクニックと実用例(109種類)、
XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。
体系的に学びたい方は是非ご検討ください。
アップデートなどの更新事項があれば随時反映しています。
なお購入後に最新版をダウンロードするには
Amazonへの問い合わせが必要です。