いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)MODE/MODE.MULT関数で最頻値を求める

 Googleスプレッドシートで、最頻値(最も多く現れる数値)を求める関数についてです。
 最頻値は平均値や中央値と異なり、該当する値が1つだけとは限らないので、使い分けを考慮する必要があります。

  • MODE関数、MODE.SNGL関数で最頻値を1つだけ(初出順で最も早いもの)取得できます。
  • MODE.MULT関数で最頻値をすべて取得できます。

手順

MODE関数及びMODE.SNGL関数(最頻値を1つ取得する)の例

 B3:B11の範囲に数値が並んでいます。
 D3セルに数式を入力し、この中の最頻値(最も多く現れる値)を取得しています。
 取得された値は20(B列中に4回出現している)です。

 D3セル

=MODE(B3:B11)

 単純に対象とする範囲を引数として指定すればOKです。
 複数の離れた範囲をまとめて指定する場合は「=MODE(B3:B11,E13:E21)」などとカンマで区切って指定します。


 MODE.SNGLという関数もあります。
 もともとは次のMODE.MULT関数との区別のため導入された関数ですが、機能はMODE関数と同じです。


 ところで、MODE関数にもMODE.SNGL関数にも言えることですが、最頻値が一種類の値だけでない場合に、そのうち1つしか取得することができません。
 画像の例では10,20,30がいずれも最頻値(3回ずつ出現)ですが、関数が取得しているのは20だけです。
 最頻値が複数種ある場合、最頻値のうち初出が最も早いもの(この場合、より上の方にあるもの)が取得されます。

MODE.MULT関数(最頻値をすべて取得する)の例

 まずは最頻値が1つ(一種)だけの例です。
 この場合はMODE関数と同じく、20(B列中に4回出現)を取得します。

 D3セル

=MODE.MULT(B3:B11)

 

 しかし最頻値が1つだけでない場合には結果に違いが出ます。
 画像の例では10,20,30がいずれも最頻値(3回ずつ出現)となっており、そのすべてを取得できています。
 このようにMODE.MULT関数は最頻値が複数種ある場合にそのすべてを取得し、昇順にソートして表示します。