「2番目」の具体的な意味として「順位が2位のもの」の場合と「最大値の次に大きいもの」の場合が考えられますのでそれぞれ紹介します。また、同様にn番目に大きい数値を求めることも可能です。
「2位の数値」を求める方法
LARGE関数を使う方法
次の画像では、C3:C9の範囲に点数の数値が並んでいます(点数の重複がない点に注意)。
E3セルに数式を入力して、点数のうち大きい順に数えて2位にあたるものを抽出しています。
E3セル
=LARGE(C3:C9,2)
LARGE関数を使い、対象となる数値と順位nを指定することで、n番目に大きい数値を抽出することができます。
注意する必要があるのは最大値が複数存在する場合です。
次の画像では上記と同じ式で2位の点数を求めようとしていますが、結果は最高点である「10」となっています。データ中に最高点(10)が複数(3つ)あることが原因です。
通常の順位付けの仕方でいうと、このデータでは1位(タイ)の点数が3つあり、その次は4位になることから2位の点数というのは存在しません。しかしLARGE関数はこのようなケースでタイの数値を返すようになっています。
存在しない順位について特別の表示をする場合
上記のように通常の順位付けで2位の数値が存在しない場合に、そのことを示す文字列を返すという例です。
E3セル
=XLOOKUP(2,ARRAYFORMULA(COUNTIF(C3:C9,">"&C3:C9)+1),C3:C9,"該当なし")
それぞれの数値が通常の順位付けで何位になるのかを求め、そこからXLOOKUP関数で「2」を検索して対応するC3:C9中の数値を取得します。検索値である「2」が存在しない場合は「該当なし」が返ります。
もちろん2位だけでなく他の順位でも、その順位が存在しない場合は「該当なし」が返ります。
もちろん通常の順位付けでその順位の数値が存在する場合は、その数値が返ります。
上記の式では「ARRAYFORMULA(COUNTIF(C3:C9,">"&C3:C9)+1)」の部分で「通常の順位付け」をした結果を得ています。その部分だけ実行すると次のようになります。
注意点として数値の個数より大きい順位を指定した場合も「該当なし」が返ります。その場合にLARGE関数と同様に「#NUM!」エラーを返す場合は次のようにします。
=IF(2>COUNT(C3:C9),#NUM!,XLOOKUP(2,ARRAYFORMULA(COUNTIF(C3:C9,">"&C3:C9)+1),C3:C9,"該当なし"))
「最大値の次に大きい数値」を求める方法
最大値が複数ある場合でもその次に大きい数値を求める方法です。
次の画像では最高点(10)が複数(3つ)存在しますが、UNIQUE関数を使った式により、最高点の次に高い点数を求めています。
E3セル
=LARGE(UNIQUE(C3:C9),2)
UNIQUE関数を使い、数値の重複を除いてそれぞれ1つずつ残した結果を得ています。
あとはLARGE関数を使ってそこから2位の数値を得ることで、最大値の次に大きい数値を取得しています。
LARGE関数の第2引数を変えるだけで(重複を除いて)n番目に大きい数値を取得できます。