エクセルで、小さいほうから数えて n 番目の値を取り出すには SMALL関数を使います。たとえば売上の3番目に小さい値は、=SMALL(C3:C10,3) で 95 と分かります。
MIN関数は1番目しか出せませんが、SMALL関数なら2番目・3番目も出せるので、下位3つの合計や小さい順の一覧に使えます。この記事では、SMALL関数の基本、セルで n を指定する方法、下位の合計、いちばん小さい人の名前、条件付きの n 番目、データが足りないときの対処までを、1つの表で説明します。下の練習ツールで、売上や n を書き換えて結果の変わり方を試せます。
SMALL関数の書き方
| 引数 | 入れるもの | ポイント |
|---|---|---|
| 配列 | 数値の範囲 | 空欄・文字は無視されます。 |
| 順位 | 小さいほうから何番目か | 1 なら最小値(MIN関数と同じ)です。 |
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
SMALL関数の使い方|やりたいこと別の式
| やりたいこと | 式(例) | 結果 |
|---|---|---|
| いちばん小さい値 | =SMALL(C3:C10,1) | 60 |
| 3番目に小さい値 | =SMALL(C3:C10,3) | 95 |
| セルで指定した n 番目 | =SMALL(C3:C10,F12) | 85 |
| 下位3つの合計 | =SUM(SMALL(C3:C10,{1,2,3})) | 240 |
| いちばん小さい人の名前 | =INDEX(A3:A10,MATCH(SMALL(C3:C10,1),C3:C10,0)) | 田中 |
| 条件付きの2番目 | =SMALL(FILTER(C3:C10,B3:B10=”営業”),2) | 120 |
| データが足りないとき | =IFERROR(SMALL(C3:C10,10),”なし”) | なし |

n番目に小さい値を求める
手順:F4 に SMALL の式を入れて Enter
8 人の売上(C3:C10)から、3 番目に小さい売上を求めます。 F4 に次の式を入力して、Enter キーを押します❶。
=SMALL(C3:C10,3) C3:C103青にデータの範囲、オレンジに何番目かを入れます。例:タイム(D 列)の2番目に速い記録
=SMALL(D2:D40,2) - 空欄は 0 と数えずに無視されます。

確認:3番目に小さい売上は 95 だった

答えは 95 になりました❷。式は、次の順に計算しています。
- 売上を小さい順に並べる(空欄は除く)
⇒ 60・85・95・120・150・150・200 - 3番目を取り出す
⇒ 95
=SMALL(C3:C10,1) は 60 で、MIN関数と同じ結果です。▶ この式(F4)を、練習ツールで試す / この式(F3)を、練習ツールで試す
セルで n を指定する
F12 が 2 なので、2番目に小さい 85 です。順位を 1・2・3… と縦に並べると、小さい順の一覧を作れます。
下位3つの合計を出す
60+85+95 で、結果は 240 です。
いちばん小さい人の名前を出す
60 の位置を MATCH関数で探し、INDEX関数で名前を取り出して、結果は 田中 です(LARGE関数の使い方でも同じ形を説明しています)。
条件に合う中で n 番目に小さい値を出す
営業の売上は 120・150・60・200 なので、2番目に小さいのは 120 です。FILTER関数は Excel 2021 以降・Microsoft 365 で使えます(FILTER関数の使い方)。
いちばん小さい値と2番目の差を出す
85−60 で 25 です。最下位と次の人の差を見たいときに使えます。
データが足りないときの表示を決める
数値は7つなので10番目はなく、#NUM! の代わりに なし と表示されます。
SMALL関数がうまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「#NUM!」になる | 順位が0以下、またはデータの個数より大きい | COUNT関数で個数を確かめる。IFERROR関数で表示を決める。 |
| 0 が最小になる | 0 が入力されている(空欄は無視される) | 0 を除くなら FILTER(範囲,範囲<>0) と組み合わせる。 |
| 数値が対象にならない | 数値が文字列として入っている | VALUE関数などで数値に変換する。 |
| 名前が1人しか出ない | MATCH関数は最初の1つだけ見つける | FILTER関数で同じ値の人を全部出す。 |
SMALL関数のよくある質問
大きいほうから n 番目は?
LARGE関数を使います(LARGE関数の使い方)。
並べ替えた一覧をまとめて出すには?
Microsoft 365 なら SORT関数で、範囲を小さい順に並べ替えて一度に表示できます。
あわせて読みたい:順位・並べ替えの関連記事
練習用ファイル:練習用Excelファイル(.xlsx・無料)
