
エクセルのSMALL関数を使って、指定した範囲から「n番目に小さい値」を抽出・色付けする方法をご紹介します。「重複データ」がある場合に、重複は無視して順位を出す方法も解説しているので、ぜひ参考にしてみてください。
2番目に小さい値を抽出する(SMALL関数)

SMALL関数を使うと、「範囲」の小さい方から「N番目」の数値を抽出できます。
例:=SMALL(B2:B5,2)
SMALL関数の引数:(範囲,順位)
重複を無視して「2番目に小さい値」を抽出する
データの中に同じ数値(例:1位が2人いるなど)がある場合に、「数値の種類」として2番目に小さい値を抽出する方法です。
UNIQUE関数と組み合わせる(Excel 2021以降)

UNIQUE関数と組み合わせて、以下のように入力します。
例:=SMALL(UNIQUE(B2:B5),2)
UNIQUE関数の引数:(範囲, [列の比較], [回数指定])
【数式の解説】
- UNIQUE関数:指定した「範囲」から、重複を除いた一意の値を返します。
- SMALL関数:一意の値の中から、2番目に小さい値を抽出します。
IF関数で代用する(Excel 2019以前)

以下のような数式を入力し、Ctrl+Shift+Enterで確定します。
例:=SMALL(IF(COUNTIF(INDIRECT("B2:B"&ROW(B2:B5)), B2:B5)=1, B2:B5, ""), 2)
【数式の解説】
- INDIRECT関数:範囲の終点を
ROW(B2:B5)にすることで、「B2:B2」「B2:B3」…「B2:B5」と1行ずつ広がる範囲を順番に生成します。 - COUNTIF関数:生成した範囲の中で、各値が「何個目か」を数えます。
- IF関数:値の出現回数が1回目ならその値を返し、2回目以降なら空白を返します。
- SMALL関数:一意の値の中から、2番目に小さい値を抽出します。
2番目に小さい値に色を付ける

【手順1】
- 色を付けたい範囲を選択します。
- メニューの「ホーム」→「条件付き書式」→「新しいルール」をクリックします。

【手順2】
- 「数式を使用して、書式設定するセルを決定」を選択し、以下のような数式を入力します。
- 例:
=$B2=SMALL($B$2:$B$5,2)
- 例:
- 「書式」ボタンの「塗りつぶし」から好きな色を選び、「OK」を押します。
💡 ポイント:
- 範囲:比較する数値の範囲を絶対参照(例:$B$2:$B$5)で指定します。
- 条件:選択範囲の左上のセルを指定します。
- 行全体に色を付けたい場合:列のみを固定します(例:
$B2)。 - 列全体に色を付けたい場合:行のみを固定します(例:
B$2)。
- 行全体に色を付けたい場合:列のみを固定します(例:
📖 重複を無視して2番目に小さい値に色を付ける
B列(B2:B5)の数値を見て、その行全体に色を付けたい場合
Excel 2021以降
- 例:
=$B2=SMALL(UNIQUE($B$2:$B$5), 2)
Excel 2019以前
=$B2=SMALL(IF(COUNTIF(INDIRECT("$B$2:$B"&ROW($B$2:$B$5)),$B$2:$B$5)=1,$B$2:$B$5,""),2)