• ベストアンサー

オートフィルタで抽出された結果で2番目に大きな値

エクセル初心者です。 オートフィルタで抽出された結果の中で2番目に大きな数字を別のセルに 表示させたいと思っています。 担当者 数字   A    1   B    2  C    3  A    4 上記のような表にオートフィルタをかけ、担当者Aを抽出します。 Aの数字の中で2番目に大きな数字は1ですので、別のセルには1と表示させたいと思います。 SUBTOTAL関数とLARGE関数の組み合わせができればと思いましたが、できそうにございません。 良い方法があればご教示よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

B列に数字として 2番目は =LARGE(INDEX(SUBTOTAL(9,INDIRECT("B"&ROW(B1:B99))),),2) 1番は =LARGE(INDEX(SUBTOTAL(9,INDIRECT("B"&ROW(B1:B99))),),1) でいいです。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • yubo
  • ベストアンサー率56% (66/117)
回答No.4

こんにちは オートフィルタ無しでも動作します。 添付画像のような状態だとしてE2セルに以下の関数式を設定します。 {=IF(COUNTIF($A$2:$A$13,D2)>=2,LARGE(IF($A$2:$A$13=D2,$B$2:$B$13,""),2),"データ無し")} 尚、担当者Eのように1件しか数字がない場合、データ無しを表示します、その可能性がない場合は下記です。 {=LARGE(IF($A$2:$A$13=D2,$B$2:$B$13,""),2)} 最大値が二つの場合その数字、2番目の数字が複数あってもその数字となります。 下方に複写できますが、配列数式ですのでご注意ください。

Hermet
質問者

お礼

ありがとうございます。できました! >最大値が二つの場合その数字、2番目の数字が複数あってもその数字となります。 今回の場合のLARGE関数は1位の数字が複数ある場合、正確な値が出ないのですね。

すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

数字データがB2セル以下に入力されているなら、以下のような数式でフィルタした結果の2番目に大きい数を表示できます。 =LARGE(INDEX(SUBTOTAL(3,INDIRECT("B"&ROW(B2:B100)))*B2:B100,),2)

Hermet
質問者

お礼

ありがとうございます。INDEX関数、INDIRECT関数を初めてみました。 勉強になりました。

すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.1

「オートフィルタをかけ」た結果から計算する方法は私も知らないけど、「オートフィルタをかけ」た条件を利用すれば計算可能です。

Hermet
質問者

お礼

ありがとうございます。 エクセルは難しいですね。どの関数をどう使えば良いのか思いつかないのです。

すると、全ての回答が全文表示されます。

関連するQ&A