1/08/2025

Excel。文字列の最頻値は、どのようにして求めたらいいのでしょうか。【Mode】

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で設定します。


新しく追加された関数を組み合わせてつかうことで、文字列の最頻値を求めることができました。


今回は関数という条件をつけましたが、ピボットテーブルをつかえば、もっと手早く求めることができます。