- ベストアンサー
ランキングの並び替え
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のセルも連動してきれいに並べ替えたいのですが、どなたか分かる方がおりましたらお教え願えないでしょうか? 宜しくお願いいたします。
- みんなの回答 (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
その他の回答 (2)
- hahuuno
- ベストアンサー率27% (3/11)
他に関数は入っておらず、ランキングだけ関数なのですよね? であれば、 C1を選択している状態で、 「データ」→「並び替え」→「OK」 でいけるはずですよ。 自然とA列・B列も並び替えてくれます。
- kuma56
- ベストアンサー率31% (1423/4527)
もう少し条件を提示しないと、よく判りませんねぇ・・・・ まず、Excelで!っと云う事でいいのでしょうか? 順位ごとに並べ替えるというのは、手作業なのでしょうか?マクロなどの自動実行なのか??関数処理だけでやりたいのか??? >・・・・これを順位ごとに並べ替えるのが、どうしてもうまく出来ません。 どうしても・・っと云うのは、例えばどういう事をやってみたのでしょうか? >下のほうのように、Cセルのランキングを並び替えたときに、A.Bのセルも連動してきれいに・・・・・ Cセルのランキングを並び替えるとなっていますが、Cセルのランキング順に並べ替えるという事でいいのでしょうか??? もしそうだとすれば、元々CセルというのはBセルの値をランキング表示にしているだけの様なのですが、B列をキーにしてA列とB列を昇順で並べ替えてやれば、C列表示は自然とランキング順になりませんか?? この作業をExcelに覚えさせてマクロ化することもできると思いますが、いかがでしょうか??
お礼
ありがとうございます! かなり難しかったですが、何とかできました! こんな方法難しくて、絶対に自分ではわかりませんでした・・ 質問してみてよかったです ありがとうございました^^