Excel 最頻値(現れる頻度が最も高い数値)を取得(MODE.SNGL関数、MODE.MULT関数)

2023年6月9日

English version.

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.SNGL関数の使用例

MODE.MULT関数

MODE.MULT関数はMODE.SNGL関数と違い、最頻値が複数ある場合にも適用できます。

スピルが対応されているバージョンであれば配列数式が不要です。

1つのセルにMODE.MULT関数を指定
1つのセルにMODE.MULT関数を指定
[Enter]押下で最頻値の数だけ数式が自動拡大
[Enter]押下で最頻値の数だけ数式が自動拡大

スピルが対応されてないバージョンの場合、配列数式が必須のため使い勝手が悪くなります。

まずMODE.SNGL関数と同様にデータ範囲を引数に関数を作ります。

複製するため範囲は絶対参照にします。

MODE.SNGL関数を一つ記述

MODE.MULT関数を縦方向に数式コピーします。

配列数式にする前は全て同じ結果になり最初の最頻値の9のみ表示されます。

MODE.MULT関数を縦方向に数式コピーした結果

次に数式セルを全て選択し数式バーで[Ctrl]+[Shift]を押しながら

[Enter]を押して配列数式に変換します。数式が{}で囲まれたら成功です。

最初の最頻値の9と、2番目の2が表示されます。

続く最頻値がなくなると#N/Aエラーになります。

MODE.MULT関数を横方向に使用することも可能です。

TRANSPOSE関数の併用が必要です。

MODE.MULT関数を横方向に使用した結果

セル範囲以外を指定

関数の引数にセル範囲を結果として返す関数を指定することも可能です。その場合、最頻値はその関数の結果から取られます。

以下はセル範囲を結果として返す関数の一覧です。

関数分類説明
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への問い合わせが必要です。

関連記事

ピボットテーブルで中央値を計算(の代替方法)

関数の仕様と使い方の記事一覧

Power Automate Desktop 最頻値を取得する方法