• ベストアンサー

エクセルで上位を条件付きで抜き出す関数式の方法。

 よろしくお願いします。    A   B   C   D 1  あ   50   1   2  か   20   5 3  さ   45   0 4  た   60  -1 5  な   15   10 6  は   90  -15 7  ま   75   2 8  や   30   3 9  ら   10  -2  と有ります。 まずCの数で-2以上2以下という条件でBの点数の上位3位、下位3までを抜き出したいと思います。つまり この表では条件に当てはまるものはA名”あ””さ””た””ま””ら”で、上位3では”ま””た””あ”になり、下位は”ら””さ””あ”となり    A   B   C   D   E 1              ま   ら             2              た   さ 3              あ   あ 4  このようになるようにしたいと思います。実際はA名データーの数がこの表の九つよりも多く、順位数も3位ではなく6位ぐらいまで考えています。  関数式で表す方法をご存じの方、よろしくお願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

1列、作業列を使用しますが D列に =IF(AND(C1<3,C1>-3),B1,"") 下までコピィ *Cの数で-2以上2以下という条件 の条件にあった行を絞り込む E列に =INDEX(A:A,MATCH(LARGE(D:D,ROW(A1)),D:D,FALSE)) F列に =INDEX(A:A,MATCH(SMALL(D:D,ROW(A1)),D:D,FALSE)) 下へコピィします。 作業列が目障りなら非表示にしてください。

kei__2000
質問者

お礼

回答ありがとうございます。うまくできました。助かりました。

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

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

作業列を2列使うので、#1に比べて見劣りしますが、ご参考まで(LARGE,SMALLなんて関数を知らなかったもので) ......A......B......C......D......E......F......G......H ..1....あ....50.......1............50......3....ま....ら ..2....か....20......5............................た....さ ..3....さ....45......0............45......4....あ....あ ..4....た....60.....-1............60......2................ ..5....な.....15.....10........................................ ..6....は....90...-15........................................ ..7....ま....75......2............75.......1................ ..8....や....30......3........................................ ..9....ら.....10....-2.............10......5................ E1の式=IF(AND(C1<=2,C1>=-2),B1,"") F1の式=IF(ISERROR(RANK(E1,$E$1:$E$9)),"",RANK(E1,$E$1:$E$9)) G1の式=OFFSET($A$1,MATCH(ROW(),F$1:F$9,0)-1,0,1,1) H1の式=OFFSET($A$1,MATCH(COUNT($E$1:$E$9)-ROW()+1,F$1:F$9,0)-1,0,1,1)

kei__2000
質問者

お礼

 回答ありがとうございます。参考にさせていただきたいと思います。

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

関連するQ&A