2023年7月12日【ID:0】
メンバー限定
【Excel】最も頻繁に出現する値を抽出
こちらでは、最も頻繁に出現する値の抽出方法について、以下の3パターンで解説していきます。
1.数値の場合
2.文字の場合(1文字)
3.文字の場合(2文字以上)
最頻値を求める関数は以下の2つになります。
=MODE.SNGL(数値1, [数値2], …)
// 選択した値の中で最も出現頻度の高い値を抽出
// 複数件見つかった場合は、範囲の先頭にある数値が優先される
=MODE.MULT(数値1, [数値2], …)
// 選択した値の中で最も出現頻度の高い値を抽出
// 複数件見つかった場合は、配列で返す
①数値の場合
数値の場合は、関数そのものの機能になるため、以下のように抽出できます。
=MODE.SNGL(B2:B10)

複数件見つかった場合は、以下のようになります。
=MODE.SNGL(H2:H9)
=MODE.MULT(H2:H9)

MODE.MULT関数に関しては、スピルに対応していない場合は配列数式にする必要があります。
配列数式は、表示される可能性がある件数分の範囲を選択した後に数式を入力し、確定時はEnterではなく「Ctrl+Shift+Enter」で行います。

数式バーを確認すると、入力した数式に「{}」が追加されて表示されます。
これが配列数式になります。

配列数式の場合は、表示させる件数が選択したセルの数より少ない場合、エラー(#N/A)が表示されます。
また、配列数式を削除する場合は、対象の範囲全てを選択してからDeleteキーを押します。
入力した単体のセルのみでは削除できないため、削除する際は注意する必要があります。
こちらの内容以降に関しては、スピルに対応したExcel向けに解説していきます。
対応していない場合は、必要に応じて配列数式を活用することで同じことが実現できます。
①補足
複数列を指定している場合は、以下の順番で抽出対象が優先されます。

②文字の場合(1文字)
MODE.SNGL関数とMODE.MULT関数は数値のみに対応しています。
そのため、文字で求めたい場合は、文字を数値にして行う必要があります。
文字が1文字の場合は、CODE関数とCHAR関数が使えます。
=CODE(文字列)
// 文字列の先頭の文字の文字コードを返す
=CHAR(数値)
// 文字コード(数値)に対応する文字を返す
CODE関数で、対象の範囲を文字コードの配列にし、その配列に対して最頻値を求め、その結果をCHAR関数により文字に戻すことで抽出できます。
=CHAR(MODE.SNGL(CODE(B2:B10)))
=CHAR(MODE.MULT(CODE(B2:B10)))

③文字の場合(2文字以上)
最後に複数の文字の場合です。
先ほどのCODE関数やCHAR関数は1文字の場合のみに対応しています。
複数の文字の場合は、同じ文字を同じ数字に置き換える必要があります。
続きはIT予備メンバー限定です。
メンバー限定コンテンツになります。

IT予備メンバーページと連携することで内容を確認することができます。
メンバーとは
すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。
ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます