スプレッドシートのMODE.SNGL関数の使い方|最頻値(1つ)

スポンサーリンク

「MODE.SNGL関数って何? MODE関数と何が違うの?」。関数一覧で見かけて、こんな疑問を持ったことはありませんか?

結論から言うと、MODE.SNGL関数とMODE関数は完全に同じ動作です。ただ、名前が違うだけで混乱しやすいですよね。

この記事ではスプレッドシートのMODE.SNGL関数の基本的な使い方から、MODE関数との関係、MODE.MULT関数との違いまで整理して紹介します。

スプレッドシートのMODE.SNGL関数とは?

MODE.SNGL関数(読み方: モード・シングル関数)は、指定した数値の中で最も多く出現する値(最頻値)を1つ返す関数です。「SNGL」は「Single(単一)」の略です。

実はMODE関数の完全なエイリアス(別名)です。構文も動作も戻り値もすべて同じです。では、なぜ別名が存在するのでしょうか。

理由はMODE.MULT関数との対比です。MODE.MULTが「複数の最頻値をすべて返す」のに対し、MODE.SNGLは「最頻値を1つだけ返す」ことを名前で明示しています。

MODE.SNGL関数にできることをまとめると、次のとおりです。

  • 指定したセル範囲で最も多く出現する数値を1つ返す
  • 複数の最頻値がある場合は最小の値を返す
  • 空白セルや文字列は自動的にスキップする
  • MODE関数と完全に同じ結果を返す

NOTE

MODE.SNGL関数はGoogleスプレッドシートの全バージョンで使えます。Excelでも同じ構文で利用できます。

MODE.SNGL関数の書き方(構文と引数)

基本構文

=MODE.SNGL(値1, [値2, ...])

カッコの中に、最頻値を求めたい数値やセル範囲を指定します。

引数の説明

引数必須/任意説明
値1必須最頻値を求めたい最初の数値、セル参照、またはセル範囲
値2, …任意追加で最頻値に含めたい数値やセル範囲

引数が2つ以上ある場合は、カンマ( , )で区切ります。

引数に指定できるものは3種類あります。

  • 数値を直接入力: =MODE.SNGL(3, 3, 5, 7) → 結果は3
  • セル参照: =MODE.SNGL(A1, B1, C1)
  • セル範囲: =MODE.SNGL(A1:A10)

MODE.SNGL関数の基本的な使い方

ここからは実際にMODE.SNGL関数を使ってみましょう。

基本パターン: セル範囲の最頻値を求める

B2からB9にテストの点数が入っているとします。点数は「70, 80, 80, 85, 90, 80, 75, 85」です。

=MODE.SNGL(B2:B9)

「80」が3回で最も多いため、結果は80です。

検算: 70(1回), 75(1回), 80(3回), 85(2回), 90(1回)。80が最多ですね。

複数の最頻値がある場合

「70, 80, 80, 90, 90, 85」のように、80と90が同じ回数のケースを考えます。

=MODE.SNGL(B2:B7)

結果は80です。複数の最頻値がある場合、MODE.SNGL関数は最小の値を返します。90ではなく80が返る点に注意してください。

すべての最頻値を確認したい場合はMODE.MULT関数を使いましょう。

離れた範囲をまとめて計算する

複数のセル範囲をカンマで区切って指定できます。

=MODE.SNGL(B2:B10, D2:D10)

B列とD列のデータをまとめて、最頻値を1つ返します。

実務でのMODE.SNGL関数活用パターン

基本がわかったところで、実務でよく出てくるパターンを見ていきましょう。

パターン1: アンケートの最多回答を見つける

5段階評価のアンケート結果がB列に入っているとします。

回答者評価(1〜5)
A4
B3
C4
D5
E4
F3
G4
=MODE.SNGL(B2:B8)

結果は4です。「4」が4回で最多だとわかります。

検算: 3(2回), 4(4回), 5(1回)。4が最多ですね。最も選ばれた評価が一発で確認できますよ。

パターン2: 売上データの頻出価格帯を特定する

注文データのB列に商品単価が入っているとします。

注文No単価(円)
1500
21000
3500
41500
51000
6500
71500
8500
=MODE.SNGL(B2:B9)

結果は500です。500円が4回で最多です。

検算: 500(4回), 1000(2回), 1500(2回)。500が最多ですね。よく売れる価格帯が一目でわかります。

パターン3: COUNTIFと組み合わせて出現回数も表示する

最頻値だけでなく「何回出現したか」も知りたいことがありますよね。

D2セルにMODE.SNGL関数、E2セルにCOUNTIF関数を入力します。

=MODE.SNGL(B2:B20)
=COUNTIF(B2:B20, D2)

D列に最頻値、E列にその出現回数が表示されます。

パターン4: IFERRORでエラーを防ぐ

すべての値が1回ずつしか出現しないと#N/Aエラーになります。IFERROR関数で囲んでおくと安心です。

=IFERROR(MODE.SNGL(B2:B10), "最頻値なし")

最頻値がないときは「最頻値なし」と表示されます。データが少ない初期段階で役立ちますよ。

パターン5: 来客ピーク時間帯を調べる

B列に来客時間帯(9, 10, 11, …)が記録されているとします。

=MODE.SNGL(B2:B200)

最も来客が多い時間帯が返ります。シフト配置の判断材料にできますね。

よくあるエラーと対処法

MODE.SNGL関数で困ったら、以下のパターンを確認してみてください。

症状原因対処法
#N/Aエラーすべての値が1回ずつしか出現しないIFERRORで囲む。重複データがあるか確認する
#N/Aエラー範囲にデータが1つもない参照範囲にデータが入っているか確認する
想定と違う値が返る複数の最頻値があり最小値が返されているMODE.MULT関数で全最頻値を確認する
文字列が無視されるMODE.SNGL関数は数値のみ対応文字列を数値コードに変換してから使う

#N/Aエラーの対処

MODE.SNGL関数で最も多いのは#N/Aエラーです。重複する値が1つもないとき発生します。

=IFERROR(MODE.SNGL(B2:B10), "該当なし")

IFERROR関数で囲めば、エラーの代わりに任意のメッセージを表示できますよ。

MODE関数・MODE.MULT関数との違い

MODE.SNGL関数と似た関数にMODE関数MODE.MULT関数があります。違いを整理しておきましょう。

項目MODEMODE.SNGLMODE.MULT
返す最頻値の数1つだけ1つだけすべて
複数の最頻値がある場合最小値を返す最小値を返すすべて返す
結果の形式単一の値単一の値配列(縦方向に展開)
用途代表的な最頻値を知りたいMODEと同じ同率の最頻値をすべて把握したい

MODEとMODE.SNGLは同じ関数

MODE関数とMODE.SNGL関数は完全に同じ動作です。MODE.SNGLはMODEのエイリアス(別名)にあたります。

「MODE.MULT(複数)」との対比で「Single(1つ)」と明示するために用意されました。どちらを使っても結果は変わりません。

どちらを使うべき?

  • 既存のシートに合わせたい → MODEで統一するのがシンプル
  • MODE.MULTと併用する → MODE.SNGLを使うと対比が明確になる
  • 他の人とシートを共有する → MODEのほうが認知度が高い

迷ったらMODE関数で問題ありません。MODE.MULTと並べて使う場面ではMODE.SNGLを選ぶと読みやすくなりますよ。

MODE.MULTとの使い分け

  • 最頻値が1つだけほしい → MODE.SNGL(またはMODE)で十分
  • 同率の最頻値をすべて把握したいMODE.MULT関数を使う
  • 最頻値の有無がわからない → MODE.MULT + IFERRORの組み合わせが安心

まとめ

MODE.SNGL関数は、データの最頻値(最も多く出現する値)を1つ返す関数です。

ポイントを整理します。

  • 構文は =MODE.SNGL(値1, [値2, ...]) で最頻値を1つ返す
  • MODE関数と完全に同じ動作(エイリアス)
  • 複数の最頻値がある場合は最小値が返される
  • すべてのデータが一意だと#N/Aエラーになる
  • MODE.MULT関数と併用するときに名前の対比がわかりやすい
  • アンケート集計や価格帯分析で活用できる

まずは =MODE.SNGL(範囲) でデータの最頻値を確認してみてください。MODE.MULT関数と結果を比べると、同率の値が隠れていたことに気づくかもしれませんよ。


この記事で紹介した関数・関連記事

タイトルとURLをコピーしました