- ベストアンサー
excelでテストのランキングの表を作りたい
excel2003で100人ほどのテストの点数のランキングの表を作りたいです。 元の表として「氏名」「点数」「順位」の項目をつくり、氏名、点数は手入力で、順位はRANKという関数で順位を与えました。 そして、その中で上位30位を別の表として「順位(1位から30位)」「点数」「氏名」という項目を作り表作成したいんですけど 点数に該当する氏名の表示方法がわかりません。 ・「順位」→RANKで1位から、30人分を表示(元の表の点数を変えると順位も変わる) ・「点数」→LARGEで点数の高い順に表示(元の表の点数を変えると順位も変わる) ・「氏名」→その点数に該当する氏名を表示する方法がわかりません。また、同じ点数が数名いる場合に氏名が重複しないようにするにはどうすればいいでしょうか。 エクセル初心者です。よろしくお願いします。 わかりにくい説明ですいません、何かあったら補足で説明いたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
◆6人のランキング表から上位3位までを表示しています ◆Sheet1 A B C 1 氏名 点数 順位 2 大阪 太郎 88 1 3 神戸 次郎 77 4 4 京都 春子 82 2 5 奈良 三郎 65 5 6 三重 秋子 82 2 7 山口 四郎 63 6 ◆Sheet2 A B C 1 順位 点数 氏名 2 1 88 大阪 太郎 3 2 82 京都 春子 4 2 82 三重 秋子 A2=IF(SMALL(Sheet1!C:C,ROW(A1))>3,"",SMALL(Sheet1!C:C,ROW(A1))) B2=IF(A2="","",LARGE(Sheet1!B:B,ROW(A1))) C2=IF(A2="","",INDEX(Sheet1!A:A,SUMPRODUCT(LARGE((Sheet1!$B$2:$B$200=B2)*(ROW($B$2:$B$200)),COUNTIF($B$2:B$200,B2)-COUNTIF($B$2:B2,B2)+1)))) ★共に下にコピー
その他の回答 (1)
- sige1701
- ベストアンサー率28% (74/260)
No1さんの表をお借りして ◆Sheet1 A B C D 1 氏名 点数 順位 2 大阪 太郎 88 1 1 3 神戸 次郎 77 4 4 4 京都 春子 82 2 2 5 奈良 三郎 65 5 5 6 三重 秋子 82 2 3 7 山口 四郎 63 6 6 D列を作業用列とします D2=COUNTIF($C$2:C2,C2)+C2-1 ◆Sheet2 A B C 1 順位 点数 氏名 2 1 88 大阪 太郎 3 2 82 京都 春子 4 2 82 三重 秋子 A2=INDEX(Sheet1!A:A,MATCH(ROW(A1),Sheet1!$D:$D,0)) 必要範囲にコピー
お礼
回答ありがとうございます。 式が短くなってわかりやすいです。是非参考にさせていただきます。 ちなみに、No.1さんと結果は同じですが、内容に違いはあるのでしょうか?
お礼
回答ありがとうございます。 Sheet2の表は私の思っている出来上がりの表そのもので、とても助かります。それにしても結構難しいんですね式を見てもわからないところだらけでした^^; 1つ質問なんですが、教えていただいたC2の式で、範囲指定に、「$B$2:$B$200」と2~200までの行を指定しているのはどうしてですか?そこを「B:B」としてもよいのでしょうか?