【スプレッドシート】SMALL関数でn番目に小さい値を抽出!

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

スポンサーリンク

SMALL関数の使い方

【スプレッドシート】SMALL関数でn番目に小さい値を抽出!

SMALL関数は、指定したデータ範囲内で、n番目に小さい値を返します

たとえば、B列の範囲から2番目に小さい値を抽出したい場合、数式は次のようになります。

例:=SMALL(B2:B5,2)

もし、SMALL(範囲, 1)とすると、最小値を返すMIN(範囲)とまったく同じ結果になります。

SMALL関数の引数:(データ, n)

スポンサーリンク

SMALL関数に条件を指定する

【スプレッドシート】SMALL関数でn番目に小さい値を抽出!

特定の条件と一致するセルの中からn番目の値を抽出したい場合、SMALL関数FILTER関数を組み合わせます。

たとえば、0は除いて2番目に小さい値を抽出したい場合、数式は以下のようになります。

例:=SMALL(FILTER(B2:B5,B2:B5<>0),2)


数式の解説

  1. まず、FILTER関数が「0ではない」という条件で絞り込み、B列のデータ{200; 300; 100}を返します。
  2. 次に、SMALL関数がFILTER関数の結果{200; 300; 100}を受け取り、その中から2番目に小さい値(200)を返します。

FILTER関数の引数:(範囲, 条件1, [条件2, …])

スポンサーリンク

重複データから抽出する

【スプレッドシート】SMALL関数でn番目に小さい値を抽出!

重複を無視してn番目に小さい値を抽出したい場合は、SMALL関数UNIQUE関数を組み合わせます。

たとえば、200, 300, 100,100の中から重複を無視して2番目に小さい値200を抽出したい場合、数式は次のようになります。

例:=SMALL(UNIQUE(B2:B5),2)

UNIQUE関数を使わずに=SMALL(B2:B5, 2)とすると、100が2つあるため、2番目に小さい値は100となります。


数式の解説

  1. まず、UNIQUE関数が重複を削除し、{200; 300; 100}という一意の配列を返します。
  2. 次に、SMALL関数がその配列を受け取り、2番目に小さい値200を最終的な結果として返します。

UNIQUE関数の引数:(範囲, [列の比較], [回数指定])

スポンサーリンク

n番目に小さい値に色付けする

範囲内のセルに色を付ける

【スプレッドシート】SMALL関数でn番目に小さい値を抽出!

まず、色を付ける範囲を選択し、「表示形式」→「条件付き書式」を開きます。

次に、書式設定の条件を「カスタム数式」に変更し、以下のような数式を入力します。

例:=B2=SMALL($B$2:$B$5,2)

この数式は、指定した範囲内の各セルが、範囲全体で2番目に小さいかどうかを判断します。

数式のポイント

  • 数式の左側の検査値には、対象範囲で一番左上のセル(例:B2)を指定します。
  • SMALL関数の範囲には、絶対参照$を付ける)を使用します。

行全体に色を付ける

【スプレッドシート】SMALL関数でn番目に小さい値を抽出!

適用範囲を色付けしたい範囲(例:A2:B5)に変更し、「カスタム数式」に以下のような数式を入力します。

例:=$B2=SMALL($B$2:$B$5,2)

数式のポイント

  • =$B2のように、検査値の列のみを絶対参照$を付ける)にします。これにより、B列の値が2番目に小さい値であるかを基準に、行全体に色が適用されます。
  • SMALL関数の範囲は、これまで通り絶対参照$を付ける)で固定します。
タイトルとURLをコピーしました