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完全マスター: 関数・テクニック・新機能を網羅した決定版ガイド

本書は、Excelの基礎から応用まで、包括的に学べるガイドブックです。当サイトの豊富な情報を、電子書籍向けに最適化し、読みやすく再構成しました。

【本書の特徴】

  • 情報量:Word-A4サイズ換算で1,400ページ相当
  • 基本操作から高度なテクニックまで、段階的に学習可能
  • 140種類の関数を詳細に解説
  • 109種類の実用的なテクニックと具体例を紹介
  • 最新機能(XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピル等)を徹底解説

【対象読者】

  • Excel初心者からプロフェッショナルまで
  • 体系的にExcelスキルを向上させたい方
  • 業務効率化を目指すビジネスパーソン
  • データ分析や可視化のスキルを磨きたい方

【本書の強み】

  • 実務に即した例題と解説
  • 視覚的な図表やスクリーンショットで理解を促進
  • 最新のExcelバージョンに対応した内容
  • 著者の長年の経験に基づく、実践的なTipsを多数収録

【更新とサポート】

  • 常に最新の情報を反映するため、定期的に内容を更新
  • 最新版の入手方法:Amazonカスタマーサポートへお問い合わせください

【入手方法】

  • 買い切り:950円
  • Kindle Unlimited:読み放題プランで利用可能

Excelマスターを目指す方、業務効率を劇的に向上させたい方に、自信を持っておすすめできる一冊です。この1冊で、Excelの可能性を最大限に引き出す力が身につきます。

関連記事

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

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

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