プロが教えるわが家の防犯対策術!

エクセル初心者です。
オートフィルタで抽出された結果の中で2番目に大きな数字を別のセルに
表示させたいと思っています。

担当者 数字 
 A    1 
 B    2
 C    3
 A    4

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

A 回答 (4件)

B列に数字として


2番目は
=LARGE(INDEX(SUBTOTAL(9,INDIRECT("B"&ROW(B1:B99))),),2)
1番は
=LARGE(INDEX(SUBTOTAL(9,INDIRECT("B"&ROW(B1:B99))),),1)
でいいです。
    • good
    • 0

こんにちは



オートフィルタ無しでも動作します。
添付画像のような状態だとして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番目の数字が複数あってもその数字となります。
下方に複写できますが、配列数式ですのでご注意ください。
「オートフィルタで抽出された結果で2番目に」の回答画像4
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/12/25 23:29

数字データがB2セル以下に入力されているなら、以下のような数式でフィルタした結果の2番目に大きい数を表示できます。



=LARGE(INDEX(SUBTOTAL(3,INDIRECT("B"&ROW(B2:B100)))*B2:B100,),2)
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/12/25 23:27

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2011/12/25 23:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!