LARGE関数を適用して、重複を無視して列から最大の5つの値を取得しようとしています。私はいくつかの検索を行い、いくつかの提案された解決策を見つけましたが、それらは私にとってはうまくいかないようです。私の実際のアプリケーションでは、範囲は配列数式によって検出されるため、非配列数式がここで機能するかどうかはわかりません。私の元の関数は、{= LARGE(IF($ A:$ A = $ A2、$ B:$ B)、2)}を列の下にドラッグしました。 2を3番目に大きい場合は3に、4番目に大きい場合は4に置き換えます。これは、重複する場合を除いて機能しました。
例えば:
データは列1にあり、目的の出力は列2にあります。
1 5
2 4
2 3
3 2
3 1
3
4
4
5
私が試したこと:
{= LARGE(IF(A:A <LARGE(A:A、i-1)、A:A)、1)}は、i番目に大きい値です。
-これを入力すると、i = 3とi = 4の両方に3が与えられます。
= LARGE(A:A、COUNTIF(A:A、MAX(A:A))+ 1)
-これはLARGE(A:A、2)と何ら変わらないようです
{= MAX(IF(A:A <LOOKUP(9.99999999999999E + 307、A:A)、A:A))}
-これは値4を取得しますが、k番目に大きい値に一般化する方法がわかりません。
VBAソリューションも問題ありません。自分でコーディングしようとしましたが、配列数式IF($ A:$ A = $ A2、$ B:$ B)でコーディングする方法がわかりませんでした。