• ベストアンサー

Excel top10関数について

現在,Excelでフィルタによるトップ10での抽出が出来なくて困っています. 添付しているデータのようなモノなのですが, このデータからA列の1でのトップ3と,A列の2でのトップ3,A列の3でのトップ3を 一度に抽出,出来る方法はないでしょうか? このままトップ10で上位3つを抽出してしまうと,1から3すべてのデータから上位3つを 抽出してしまい思った通りに出来ないのです. ひとつひとつ,やれば出来るのですがデータ列が大量にあり また,同じ処理をしなくてはならないファイルが山のようにあり どうにか出来ないか困っておりますl. どうか,よろしくお願いいたします.

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 データはA・B列の4行目からあるとしています。 同順位があっても3データのみの表示としてみました。 ↓の画像でD4セルに(配列数式です) =LARGE(IF($A$4:$A$1000=D$3,$B$4:$B$1000),ROW(A1)) として Shift+Ctrlキーを押しながらEnterキーで確定! これを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 ※ この画面からコピー&ペーストする場合はD2セルに貼り付け後、数式バー内で一度クリック! 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定です。 参考になれば良いのですが・・・m(_ _)m

Blackyan
質問者

お礼

解答ありがとうございます! 画像付きでとても分かりやすかったです. これで,ひとつひとつ編集せずに済みそうです. とても参考になりました, 本当にありがとうございました.

その他の回答 (2)

noname#204879
noname#204879
回答No.3

先の回答と殆ど同じですが… 添付図参照 E4: {=LARGE(($A$4:$A$31=$D4)*($B$4:$B$31),E$3)}   (配列数式)

Blackyan
質問者

お礼

回答ありがとうございます. 配列数式という言葉,初めて知りました. もっと勉強しないとだめですね(汗) 本当にありがとうございました.

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

D1,E1,F1にそれぞれグループ名(A列)としての1,2,3を記入してあるとすると D2に =LARGE(INDEX(($A$2:$A$100=D$1)*$B$2:$B$100,),ROW(D1)) と記入(ふつーに入力でイイです)してD4までコピー,更に右にコピーします。

Blackyan
質問者

お礼

回答ありがとうございます. やり方もさまざまな方法があるのに驚きました. 参考になります. ありがとうございました.

関連するQ&A