
Googleスプレッドシートで数値の最頻値を求められる、MODE関数の使い方をご紹介します。ゼロを除いた数値の最頻値を求める方法や、文字列の最頻値を求める方法についても解説しているので、ぜひ参考にしてみてください。
最頻値を求める(MODE関数)

MODE関数は、指定した「数値」内で最も多く出現する値を返します。
例:=MODE(A2:A5)
【補足】
- 最頻値が2つ以上ある場合、最初に出現する最頻値を返します。
- すべての数値が1回しか出現しない(最頻値がない)場合は、エラーになります。
MODE関数の引数:(値1, [値2, …])
最頻値が複数ある場合(MODE.MULT関数)

2つ以上の最頻値を同時に抽出したい場合は、MODE.MULT関数を使います。
例:=MODE.MULT(A2:A6)
ゼロを除いた最頻値も求める(MODE+FILTER)

ゼロは無視して最頻値を求めたい場合、MODE関数にFILTER関数を組み合わせます。
例:=MODE(FILTER(A2:A6,A2:A6<>0))
【数式の解説】
- FILTER関数は、数字の範囲(
A2:A6)を0以外(<>0)のデータに絞り込みます。 - MODE関数は、FILTER関数で処理されたデータを受け取り、そこから最頻値を返します。
FILTER関数の引数:(範囲, 条件1, [条件2, …])
最頻値の行を取り出す(応用:MODE+XLOOKUP)

最頻値に対応する値も同時に抽出したい場合、MODE関数にXLOOKUP関数を組み合わせます。
例:=XLOOKUP(MODE(A2:A5),A2:A5,A2:B5)
【数式の解説】
- MODE関数は、指定の範囲(
A2:A5)から最頻値(2)を返します。 - XLOOKUP関数は、MODEが求めた最頻値を検索キーとして、検索範囲(
A2:A5)から探し、一致する行を結果の範囲(A2:B5)から返します。
XLOOKUP関数の引数:(検索キー, 検索範囲, 結果の範囲, [見つからない場合の値], [一致モード], [検索モード])
XLOOKUP関数の基本的な解説は、「XLOOKUP関数の使い方」をご覧ください。
文字列の最頻値を求める(応用:INDEX+MODE+XMATCH)

文字列の最頻値を求めたい場合、INDEX関数とXMATCH関数を組み合わせて、文字列を数値に変換します。
例:=INDEX(A2:A5,MODE(XMATCH(A2:A5,A2:A5)))
【数式の解説】
- XMATCH関数は、文字列が最初に現れる相対的な位置(例:
1,2,1,4)を割り振ります。 - MODE関数は、XMATCHが割り振った番号の中から、最頻値(例:
1)を返します。 - INDEX関数は、MODEが返した最頻値の番号を行番号として使い、範囲(
A2:A5)から1行目の文字列を抽出します。
INDEX関数の引数:(参照, [行], [列])
INDEX関数の基本的な解説は、「INDEXとMATCHを分かりやすく解説」をご覧ください。