たとえば、次のような列 A があります。
I
15
0
3
15
M
8
0
8
21
Q
0
5
0
0
最大値を見つけるには=MAX(A1:A100) 最小値を見つけるには=小(A1:A100,1)
最大の値の 1 つ前と、その前の値を見つけるにはどうすればよいですか。Large を使用して N 番目の値を呼び出すことはできますが、関数がカウントする N 個の値の数を調べて、最後の 3 つ (最大の値とその前の 2 つ) を参照する位置を知るにはどうすればよいですか。
重複を無視します。例では、最大値は 21、その前は 15、その前は 8 です。=LARGE(A1:A100,3) を実行すると、列に 2 つの値があるため 15 が返されます。そして、3 番目に大きい値として 8 を探します。
以下に、インターネット上の親切な人々がピボットテーブルと配列数式のソリューションを提供してくれたことを紹介します。そして、私は最終的に簡単な数式を作成することができました。
すべて揃っていると主張する場合は、この仕事に必要な VBA を提供できますが、そうでない場合は、すでに十分な量があります。
答え1
答え2
答え3
これまでに受けてきたすばらしいサポートのおかげで、ピボット テーブルと同じことができるのではないかと考え、次のようなアイデアを思いつきました (自分でも LOL)。
=IF(COUNTIF($A$1:A1,A1)<=1,A1,"")
関心のあるデータと平行な列を作成すると解決します。(例: C1 に貼り付けて下にコピーします)
これは、大規模なものから小規模なものまで、ベースにできる最初の重複除去リストを提供します。シンプルなソリューションなので、ドキュメント内で発生する可能性のある不安定な処理に干渉することはありません。また、私は VBA なしでも生きていけます。データ型が混在している場合、予期しない展開は IFERROR で抑制できるはずです。
答え4
@helena4 この配列数式を試してください
=LARGE(IF(A1:A15 < LARGE(A1:A15,1),A1:A15),3)
次に押すCtrl+Shift+Enter
重複は無視されます。