8/22/2022

Excel。単一条件の最頻値を算出するには、どうしたらいいの【mode】

Excel。単一条件の最頻値を算出するには、どうしたらいいの

<MODE.SNGL+IF関数>

データ内で、一番多く登場している値を算出する時に使用するのが、「MODE.SNGL関数」です。

このMODE.SNGL関数の引数は一つしかないので、「東京にお住いの人」というような条件が付いた場合、MODE.SNGL関数だけでは算出することができません。


では、次の表の場合、どのようにしたらいいのでしょうか。


最初は、F2に全体の最頻値を算出していますので、その数式から確認してきましょう。

F2の数式は、

=MODE.SNGL(C2:C11)


これで、C2:C11の年齢(年代)の中で、一番登場回数が多い数値である最頻値を算出することができました。


結果は、60。


では、地区ごとでの最頻値は、いくつなのでしょうか。


MODE.SNGL関数だけでは、COUNTIF関数のような条件をつけての算出はできません。

引数にIF関数を含めた、MODE.SNGL+IF関数というネストにすることで、対応することができます。


F3には、東日本の最頻値を算出していきます。

F3の数式は、

=MODE.SNGL(IF($B$2:$B$11=E3,$C$2:$C$11,""))


$B$2:$B$11や、$C$2:$C$11は、オートフィルで数式をコピーするので、絶対参照を設定してあります。

算出結果は、「40」で合致しています。

西日本はの算出結果は「60」で、こちらも合致しています。


もしかしたら、MAXIFS関数のように、新たな関数が登場するかもしれませんが、MODE.SNGL関数の引数にIF関数をつかうことで、単一条件での最頻値を算出することができました。


旧来のExcelのバージョンでは、MODE.SNGL関数は配列関数なので、Ctrl+Shift+Enterを確定時に押す必要がありました。

しかし、スピル機能がついたExcelのバージョンでは、そのまま数式をつくっても、算出してくれます。


配列関数で設定する必要があるのか、ないのかは、バージョンに合わせて行えば、MODE.SNGL+IF関数で算出すること自体は変わりません。