- ベストアンサー
エクセルで順位
エクセルで入力した数値に順位を付けたいのですが ただ順位を付けるのではなく、後からデーターを 付け加えても自動的に順位が入れ替わる関数って あるのでしょうか? 宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
B列にデータ、C列に順位にとします。 C1に、 =IF(B1="","",RANK(B1,B:B)) と書いて、下方にコピーします。 B列にデータが増えるたびにC列の順位が自動的に更新されます。 自動計算はONにしておいてください。 (ツール→オプション→計算方法) 頑張ってくださいヽ(^。^)ノ
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17070)
(1)RANK関数があります。その引数は =RANK(A1,範囲)です。普通は「範囲」固定してA1:A10などといれれば用が済みます。 (2)本件はA11に数値が入ったとき、A1:A10もA11を含めて再計算して欲しいと言うことだと思います。 (3)「名前」と言う仕組みを使うと実現します。 A1:A10に 数値 23 1234 1233456 345 1234 12 2333 2345 123455555 と入っているとして 範囲指定を=Sheet1!$A$2:$A$20として 挿入-名前-作成-上端行-Ok とする。 B2セルに=IF(A2="","",RANK(A2,数値))といれA10まで複写する。「数値」とは、上端行(A1)のデータ文字列です。 取りあえず B2:B10は 8 5 2 7 5 9 4 3 1 ですが A11に 24をいれると B2:B10は 9 5 2 7 5 10 4 3 1 と変化します。 こういうことをお望みでしょう。
- sashichan
- ベストアンサー率39% (13/33)
投稿してから、質問の意味が「データを付け加えると順位が入れ替わって、大きい順に上から表示されるようにする」と云う意味かもしれないと思い、もう一度投稿します。 例えばB1からB10まで数値が入っていて、その数値を大きい順にD1からD10に表示したいとします。 まずC1からC10に1から10の数値を入力します。 D1には =LARGE(B$1:B$10,C1) と入力し、それをD10までコピーすれば良いです。 また、小さい順に表示させたければ =SMALL(B$1:B$10,C1) としてコピーすれば良いです。
- coco1
- ベストアンサー率25% (323/1260)
MAC版やExcel97等ではどうだかわかりませんが、手元のWindows版XPでは次のとおりです。 例としてA1~A10に順位を、B1~B10に得点を入力するとします。また、ここで、実際にはB1~B5までしか得点が入力されておらず、B6以降は今後入力予定とします。 このとき、A1に「if(B1<>"",rank(B1,$B$1:$B10),"")」と入力し、これをA2以降にコピーします。 すると、点数が入力された文だけ順位を表示します。 得点入力範囲が不特定であるなどの場合にはちょっと別の要領が必要です。
- sashichan
- ベストアンサー率39% (13/33)
RANKという関数があります。 例えばB1からB10まで数値が入っていて、その順位をそれぞれA1からA10に表示したければ、 A1には =RANK(B1,B$1:B$10) と入力し、それをA10までコピーすれば良いです。
補足
最初RANKでやったのですが 空白のセルを指定したらエラー表示になるみたいで 順位は1位~100位みたいな感じです