• ベストアンサー

ランキングの並び替え

     A      B     C 1   田中     70     (3)            2   佐藤     100     (1)          3   鈴木     80     (2)                 A    B    C 1  佐藤  100   (1) 2  鈴木   80    (2) 3   田中   70    (3)  ランキングの関数を入れて、何とかCのセルにランキングが表示できるように なったのですが、これを順位ごとに並べ替えるのが、どうしてもうまく出来ません。 下のほうのように、Cセルのランキングを並び替えたときに、A.Bのセルも連動してきれいに並べ替えたいのですが、どなたか分かる方がおりましたらお教え願えないでしょうか? 宜しくお願いいたします。

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

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

こんばんは! 参考になるかどうか判りませんが・・・ ↓の画像で説明させていただきます。 今後データが増えても良いようにしています。 (とりあえず100行までデータが増えても対応できると思います。) 順位のC2セルに =IF(COUNTA($A$2:$A$100)<ROW(A1),"",RANK(B2,$B$2:$B$100)) としてオートフィルでずぃ~~~!っとコピーします。 そして、E2セルに =IF(COUNTA($A$2:$A$100)<ROW(A1),"",INDEX($A$2:$A$100,MATCH(ROW(A1),$C$2:$C$100,0))) F2セルに =IF($E2="","",VLOOKUP($E2,$A$2:$C$100,COLUMN(B1),0)) として、G2セルまでオートフィルでコピーします。 最後にE2~G2セルを範囲指定し、G2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、ここで気を付けなければならないのは同順位がある場合です。 その場合は上位の行だけを拾い出してしまい、下位の行の場合はエラーになってしまいます。 もし同順位がある場合は他の方法を考えなければなりません。 以上、参考になれば幸いですが、 的外れなら読み流してくださいね。m(__)m

zix81
質問者

お礼

ありがとうございます! かなり難しかったですが、何とかできました! こんな方法難しくて、絶対に自分ではわかりませんでした・・ 質問してみてよかったです ありがとうございました^^

その他の回答 (2)

  • hahuuno
  • ベストアンサー率27% (3/11)
回答No.2

他に関数は入っておらず、ランキングだけ関数なのですよね? であれば、 C1を選択している状態で、 「データ」→「並び替え」→「OK」 でいけるはずですよ。 自然とA列・B列も並び替えてくれます。

  • kuma56
  • ベストアンサー率31% (1423/4527)
回答No.1

もう少し条件を提示しないと、よく判りませんねぇ・・・・ まず、Excelで!っと云う事でいいのでしょうか? 順位ごとに並べ替えるというのは、手作業なのでしょうか?マクロなどの自動実行なのか??関数処理だけでやりたいのか??? >・・・・これを順位ごとに並べ替えるのが、どうしてもうまく出来ません。 どうしても・・っと云うのは、例えばどういう事をやってみたのでしょうか? >下のほうのように、Cセルのランキングを並び替えたときに、A.Bのセルも連動してきれいに・・・・・ Cセルのランキングを並び替えるとなっていますが、Cセルのランキング順に並べ替えるという事でいいのでしょうか??? もしそうだとすれば、元々CセルというのはBセルの値をランキング表示にしているだけの様なのですが、B列をキーにしてA列とB列を昇順で並べ替えてやれば、C列表示は自然とランキング順になりませんか?? この作業をExcelに覚えさせてマクロ化することもできると思いますが、いかがでしょうか??

関連するQ&A