Excel。文字列の最頻値は、どのようにして求めたらいいのでしょうか。
<UNIQUE関数,SORT関数,COUNTIF関数>
分析の一つのデータに「最頻値」というのがあります。
最頻値は、データ内で一番多くあるデータです。
その最頻値を求めるには、MODE.SNGL関数というのが用意されています。
では、次のデータで、一番多い都道府県名を求めてみましょう。
D2に設定した数式は、
=MODE.SNGL(B2:B16)
ところが、#N/Aというエラーが表示されてしまいました。
原因は、どこにあるのでしょうか。
MODE.SNGL関数の引数を確認してみると、原因がわかります。
数値1・数値2…となっています。
つまりMODE.SNGL関数は数値ならば、最頻値を求めることができるのですが、都道府県名という文字列では、最頻値を求めることができません。
ピボットテーブルをつかうのもいいのですが、今回は関数で対応していきます。
D1をクリックして、次の数式を設定します。
=UNIQUE(B2:B16)
UNIQUE関数は、データから重複を除いた、一意のデータを抽出することができる関数です。
まずは、重複を除いた一意のデータを抽出します。
UNIQUE関数は、スピル機能対応の関数なので、D3以降は、ゴーストが発生します。
よって、オートフィルで数式をコピーする必要はありません。
続いて、件数を求めます。
単一条件の件数を求めるので、COUNTIF関数をつかいます。
E2をクリックします。
E2に設定する数式は、
=COUNTIF(B2:B16,D2#)
スピル機能対応の設定にしましたので、ゴーストが発生します。
引数の最初の範囲は、B2:B16
2つ目の引数は、検索条件。
D2#とします。
「#」は、範囲内の1件という意味です。
これで、最頻値を求めることができました。
ただ、できることならば、件数が多い順にしたいわけですが、一つの表ではないので、件数を降順にするわけにはいきません。
そこで、SORT関数をつかって、新たに表を作ります。
=SORT(D2:E7,2,-1,FALSE)
これで、件数が降順のリストをつくることができました。
最頻値は、千葉県であることが、よりわかりやすくなりました。
このSORT関数もスピル機能対応の関数なので、オートフィルで数式をコピーする必要はありません。
引数も確認しておきましょう。
最初の引数は、配列。D2:E7を設定します。
2つ目の引数は、「並べ替えインデックス」。
どの列で並べ替えるのかということなので、2列目ですから、2と設定します。
3つ目の引数は、「並べ替え順序」。
降順にしたいので、「-1」で設定します。
4つ目の引数は、「並べ替え基準」。
行で並べ替えをしますので、FALSEで設定します。
新しく追加された関数を組み合わせてつかうことで、文字列の最頻値を求めることができました。
今回は関数という条件をつけましたが、ピボットテーブルをつかえば、もっと手早く求めることができます。