
GoogleスプレッドシートのSMALL関数を使うと、小さい順に1位、2位、または任意のn位の値を簡単に取得できます。条件と一致するn番目の数値を抽出する方法や、重複を含むデータからn番目に小さい値を抽出するについても解説しているので、ぜひ参考にしてみてください。
SMALL関数の使い方

SMALL関数は、指定したデータ範囲内で、n番目に小さい値を返します。
たとえば、B列の範囲から2番目に小さい値を抽出したい場合、数式は次のようになります。
例:=SMALL(B2:B5,2)
もし、SMALL(範囲, 1)とすると、最小値を返すMIN(範囲)とまったく同じ結果になります。
SMALL関数の引数:(データ, n)
SMALL関数に条件を指定する

特定の条件と一致するセルの中からn番目の値を抽出したい場合、SMALL関数とFILTER関数を組み合わせます。
たとえば、0は除いて2番目に小さい値を抽出したい場合、数式は以下のようになります。
例:=SMALL(FILTER(B2:B5,B2:B5<>0),2)
数式の解説
- まず、FILTER関数が「0ではない」という条件で絞り込み、B列のデータ
{200; 300; 100}を返します。 - 次に、SMALL関数がFILTER関数の結果
{200; 300; 100}を受け取り、その中から2番目に小さい値(200)を返します。
FILTER関数の引数:(範囲, 条件1, [条件2, …])
重複データから抽出する

重複を無視してn番目に小さい値を抽出したい場合は、SMALL関数とUNIQUE関数を組み合わせます。
たとえば、200, 300, 100,100の中から重複を無視して2番目に小さい値200を抽出したい場合、数式は次のようになります。
例:=SMALL(UNIQUE(B2:B5),2)
UNIQUE関数を使わずに=SMALL(B2:B5, 2)とすると、100が2つあるため、2番目に小さい値は100となります。
数式の解説
- まず、UNIQUE関数が重複を削除し、
{200; 300; 100}という一意の配列を返します。 - 次に、SMALL関数がその配列を受け取り、2番目に小さい値
200を最終的な結果として返します。
UNIQUE関数の引数:(範囲, [列の比較], [回数指定])
n番目に小さい値に色付けする
範囲内のセルに色を付ける

まず、色を付ける範囲を選択し、「表示形式」→「条件付き書式」を開きます。
次に、書式設定の条件を「カスタム数式」に変更し、以下のような数式を入力します。
例:=B2=SMALL($B$2:$B$5,2)
この数式は、指定した範囲内の各セルが、範囲全体で2番目に小さいかどうかを判断します。
数式のポイント
- 数式の左側の検査値には、対象範囲で一番左上のセル(例:
B2)を指定します。 - SMALL関数の範囲には、絶対参照(
$を付ける)を使用します。
行全体に色を付ける

適用範囲を色付けしたい範囲(例:A2:B5)に変更し、「カスタム数式」に以下のような数式を入力します。
例:=$B2=SMALL($B$2:$B$5,2)
数式のポイント
=$B2のように、検査値の列のみを絶対参照($を付ける)にします。これにより、B列の値が2番目に小さい値であるかを基準に、行全体に色が適用されます。- SMALL関数の範囲は、これまで通り絶対参照(
$を付ける)で固定します。