Excelで選択範囲にあるデータの中で最小値ではなく、3番目や5番目などの○番目に小さい値を調べたいときには、「SMALL」関数を使います。
下図はExcel2016、サンプルデータです。
< スポンサーリンク >
SMALL関数
指定されたデータの中で、○番目に小さなデータを返します。 この関数を使用して、データ セット内の特定の相対位置にある値を返します。
SMALL(範囲, 順位)
範囲=必須。 抽出の対象となるデータが入力されているセル範囲または配列を指定。
順位=必須。抽出する値の小さい方から数えた順位を数値で指定。
- 配列にデータが含まれていない場合は、エラー値 #NUM! が返されます。
- 順位が0以下、または対象となるデータの個数よりも大きい場合は、エラー値 #NUM! が返されます。
- n を範囲に含まれているデータの個数とするとき、SMALL(範囲,1) は対象となるデータの最小値を返します。また、SMALL(範囲,n) は対象となるデータの最大値を返します。
SMALL関数の使用例
年齢が下から1番目、3番目、5番目を取得しています。
E8 =SMALL(E2:E7,1)
E9 =SMALL(E2:E7,3)
E10 =SMALL(E2:E7,5)
生年月日が早い順に1番目、3番目、5番目を取得しています。
D8 =SMALL(D2:D7,1)
D9 =SMALL(D2:D7,3)
D10 =SMALL(D2:D7,5)
LEN関数と組み合わせて、指定した範囲の中で文字数が少ない方から1番目、3番目、5番目の文字数を求めています。
C8 {=SMALL(LEN(C2:C7),1)}
C9 {=SMALL(LEN(C2:C7),3)}
C10 {=SMALL(LEN(C2:C7),5)}
この場合、「=SMALL(LEN(C2:C7),1)」と入力して、Ctrlキー+Shiftキー+Enterキーを同時に押します。
手入力で「{ }」を入力すると、文字列に変わってしまいます。
データの中に重複したものがある場合(例:下図)
=SMALL(A1:A6,4) と =SMALL(A1:A6,5)
は、同じ結果「160」になります。
VBAでSMALL関数を扱う場合はこちら
『Excel VBAでSMALL関数を使って○番目に小さい値を取得する』
こんな記事も書いています