Excel でゼロを除いた 2 番目に小さい値を取得し、重複を無視する方法

Excel でゼロを除いた 2 番目に小さい値を取得し、重複を無視する方法

ゼロと重複する値を除いた、2 番目に小さい一意の値を取得する必要があります。

これは私のデータのサンプルです:

0 
1 
1 
3 
2 
4 
5 

必要な値は2です

答え1

ここではサポート セルを使用したソリューションを示します。この方法ではロジックがわかりやすくなりますが、もちろんすべてを 1 つの数式に組み合わせることもできます。

ここに画像の説明を入力してください

  • =COUNTIF(A1:A7,0)- 含まれるセルの数を数える0
  • =COUNTIF(A1:A7,SMALL(A1:A7,D1+1))- 最小値を含むセルの数を数える(除く0
  • =SMALL(A1:A7,D1+D2+1)- 2番目に小さい値

大きな式は次のようになります。
=SMALL(A1:A7,COUNTIF(A1:A7,0)+COUNTIF(A1:A7,SMALL(A1:A7,COUNTIF(A1:A7,0)+1))+1)

答え2

どのようにやりたいかによって異なりますが、ここに方法があります: このスクリーンショットを例として使用します (私はあなたの例を採用しましたが、2 番目に低い値として 3 を使用しました。)

常にゼロがあると仮定すると、それ以外の場合は、ゼロを追加するか、さらにテストを追加するのが簡単な方法です。
Excel スクリーンショット

  1. 列をA->Z(最小値から最大値へ)の番号で並べ替えます。
  2. 次のコードでその左側に列を追加します
    =IF(F7>F6;1;0)+E6
  3. セル内でvlookupを使用して2番目の値を検索します
    =VLOOKUP(2;E6:F13;2;TRUE)

ルックアップが必要なので、データ列の左側に列を追加します

取得した値に直接テストを追加することもできます。IF 2 の場合は値を返し、その値の列をフィルターするか、セル内の列の合計を実行します (値は 1 つしかないため、値が返されます)。

これが役に立つことを願います

追記: 数式では「;」の代わりにカンマを使う必要があるかもしれません。

答え3

以下を試してみてください:

=IFERROR(AGGREGATE(15,6,1/(1/((COUNTIF(A2:A8,A2:A8)=1)*A2:A8)),2),MAX(A2:A8))

関連情報