• ベストアンサー

エクセル ランク付けについて。

セルのA1~A10に名前、B1~B10にテストの点数が入っているとします。 これを、点数が高い人から10点、9点、8点…とつけたいのですがやり方がわかりません。 もしわかる方がいましたら、ぜひ教えていただきたいと思います。 よろしくお願いします。

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

  • ベストアンサー
noname#96418
noname#96418
回答No.2

同じ点数の人をどうされたいのでしょう?例えば、点数の高い順に 90, 80, 80, 70, ・・・ となっているとき、90の人を10点、80の二人を8点とされたいのなら、#1さんの式でよいのですが、もし80の二人を9点とされたいのでしたら、セルC1に =11-RANK(B1,$B$1:$B$10) と入力して、下へコピーされたらどうでしょう。(Rank関数の3番目の引数は省略していますが、0 を指定してもいいでしょう。)

noname#65423
質問者

お礼

質問がわかりづらく申し訳ありませんでした。また、ご回答ありがとうございます。

noname#65423
質問者

補足

同じ点数の人が2人いた場合は2人に同じ点数をつけることになっています。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問が不完全です。 同じ点数は居ないのか。いると思うが。 並べ替えてしまっては不可なのか。 などはっきりしない。 ーー 並べ替えてよいなら、降順に並べて上から10、9と入れて下へオートフィルすればよい。 元の順位に戻したいときは、まず空き列に1-10の連番を振っておいて、上記作業後に、その連番の列で並び替えればよい。 ーーー 関数なら 同じ点数が無い場合は =10-COUNTIF($B$1:$B$10,">"&B1) a 87 9 d 63 6 f 54 4 g 74 8 h 73 7 j 36 1 k 89 10 q 48 3 s 45 2 w 59 5 ーーー 同じ点数があるなら(C列は参考)D,E列に注目 A列  B列   C列  D列   E列 a 87 9 871 9 d 63 6 631 6 f 54 4 541 4 g 74 8 741 7 h 74 8 742 8 j 36 1 361 1 k 89 10 891 10 q 48 3 481 3 s 45 2 451 2 w 59 5 591 5 (C列は前記の関数 10-COUNTIF($B$1:$B$10,">"&B1) 参考) D列は作業列で =(B1&COUNTIF($B$1:B1,B1))*1 E列は =10-COUNTIF($D$1:$D$10,">"&D1) それぞれ式を下方向に複写する。 同じ点数が9人以上居ないと仮定している。 ーー 後者は作業列を使わない良いやり方があるかもしれないが、とりあえず。

noname#65423
質問者

お礼

質問がわかりづらくて申し訳ありませんでした。また、具体的にご回答いただきありがとうございました。

noname#65423
質問者

補足

同じ点数の人はいます。また、並べ替えは不可でお願いします。

  • t-yamada_2
  • ベストアンサー率40% (587/1460)
回答No.1

セルC1に   =RANK(B1,$B$1:$B$10,1) としてセルC10までドラッグコピーすればできます。

noname#65423
質問者

お礼

ご回答ありがとうございます。

関連するQ&A