連続しない範囲が複数ある場合の順位の出し方について
- Excelで連続しない範囲のデータの順位を出す方法について教えてください。
- 学校でのクラス分けで、テストの成績に基づいて習熟度別にクラスを分けたいですが、データの範囲が連続していなくて困っています。
- 順位を求めるためにrank関数を使用したいですが、連続しない範囲のデータにどのように適用すればいいのでしょうか?
- ベストアンサー
連続しない範囲が複数ある場合の順位の出し方について
こんにちは、 学校で習熟度別のクラス分けをするのですが、行き詰ってしまったのでよろしくお願いします。 21行~370行目までにデータが入っています(20行目までは平均点などを表示するために空けています)。A列に個人番号10101~10750までが入っています。10101は1年1組1番です。各クラス40人ですが、転入生のことも考え50人分ずつ取っています(ですので2組は71行目、3組は121行目から始まるようになっています)。B列に氏名、C列に点数が入っています。 1組と3組の2クラスを応用、標準、基礎クラスの3クラスに分けて、習熟度別授業をしています。テストの成績でクラス分けをするのですが、1組と3組の計80人から上位35人が応用クラス、次の30人が標準クラス、残りの15人が基礎クラスに分けたいのです。 順位を出すのにrank関数を使うのはわかるのですが、範囲が離れている場合はどのようにしたらよいでしょうか? できれば関数で解決したいのですが、無理ならマクロでもかまいません。 よろしくお願いします。
- CaveatEmptor
- お礼率92% (792/855)
- オフィス系ソフト
- 回答数5
- ありがとう数5
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>順位は#VALUE!と出てしまってできないのです。 念のためにおたずねしますが、2番目の引数の全体をかっこでくくられましたか?手元の2007の97-2003互換モードでは、かっこでくくればうまくゆくのですが・・・
その他の回答 (4)
- NNAQ
- ベストアンサー率56% (104/184)
1位~80位まで順位を出すとなると、 =MATCH(1,INDEX((LARGE(($C$21:$C$60,$C$121:$C$160),ROW(INDIRECT("1:"&COUNT($C$21:$C$60,$C$121:$C$160))))=C21)*1,),) 順位を出さず、クラス分けだけなら、(A,B,Cの3クラスだとして) =IF(PERCENTRANK(($C$21:$C$60,$C$121:$C$160),C21)<=15/80,"C",IF(PERCENTRANK(($C$21:$C$60,$C$121:$C$160),C21)<=(15+30)/80,"B","A")) または、 =IF(C21<=PERCENTILE(($C$21:$C$60,$C$121:$C$160),15/80),"C",IF(C21<=PERCENTILE(($C$21:$C$60,$C$121:$C$160),(15+30)/80),"B","A"))
お礼
回答ありがとうございます。 う~ん、複雑ですね。少し時間をかけて解読したいと思います。
- koko88okok
- ベストアンサー率58% (3839/6543)
C列のランクに関係のないデータの表示形式を文字列に変更することが可能なら、予め文字列に変更しておけば、範囲を $C$21:$C$370 としても支障なくランクが計算されます。(Excel 2003) ただし、数式を370行までオートフィルした時、文字列の部分は #N/A のエラーが表示されますので、削除する必要があります。
お礼
回答ありがとうございます。 他のクラスの得点を文字列にするわけにはいかないのです。クラスごとや学年全体の平均も必要ですし、質問には書いていませんでしたが、他に2組と4組も3クラスに分けて習熟度別授業をしていますので。
- hallo-2007
- ベストアンサー率41% (888/2115)
作業列使いますが A B C D E 20 個人番号 氏名 点数 21 ・・・ D列に =IF(OR(MID(A21,2,2)="01",MID(A21,2,2)="03"),C1,"") E列に =IF(D21="","",IF(RANK(D21,D:D)<36,"応用",IF(RANK(D21,D:D)<66,"標準","基礎"))) 入れて下までコピィしてみては如何でしょうか。
お礼
回答ありがとうございます。 やはり作業列が要りますね。マクロで配列を使ってやるしかないでしょうかね。
2番目の引数を ($C$21:$C$60,$C$121:$c$160) のように入力してみてください。 2007ではこれで OK です。
お礼
回答ありがとうございます。 Excelのバージョンは2003なんです。平均はお示しいただいた方法でできるので、試してみたのですが、順位は#VALUE!と出てしまってできないのです。
関連するQ&A
- 順位をつける範囲について
以下のようなデータがあります。 A B 1 あ 3.0 2 あ 3.0 3 あ 3.0 4 あ 3.0 5 い 1.5 6 い 1.5 7 あ 3.0 8 あ 3.0 9 い 1.5 10 い 1.5 11 う 6.8 12 う 6.8 この「あ」「い」「う」の順位を決定するのに、C列にRANK関数を使って範囲をB1:B12にすると A B C D 1 あ 3.0 5 2 2 あ 3.0 5 2 3 あ 3.0 5 2 4 あ 3.0 5 2 5 い 1.5 1 1 6 い 1.5 1 1 7 あ 3.0 5 2 8 あ 3.0 5 2 9 い 1.5 1 1 10 い 1.5 1 1 11 う 6.8 11 3 12 う 6.8 11 3 となります。でも実際には順位はD列のようにならないといけないですよね。 A列の「あ」「い」「う」がアトランダムにある場合に(A列のどこに存在しても)D列のような順位を出す方法を教えてください。 よろしくお願いいたします。
- ベストアンサー
- Windows XP
- エクセルで順位付けする方法を教えて下さい
エクセルで順位付けする方法を教えて下さい。 (A列)にクラス、(B列)に学籍番号、(C列)に得点が記載された1つの表があるとします。表にはクラス、学籍番号、得点、順に並んでいないところを、関数で順位付けしたいと考えています。表示結果として、クラス毎で得点の低い順に表示したいと考えています。 具体的には、 元々の表 (A列) (B列) (C列) A組 8 57 B組 4 41 A組 6 42 C組 3 83 C組 6 73 B組 2 83 結果の表 (A列) (B列) (C列) A組 6 42 A組 8 57 B組 4 41 B組 2 83 C組 6 73 C組 3 83 非常に煩雑な関数になりそうですが、お力をお貸しいただきたく宜しくお願いいたします。
- 締切済み
- オフィス系ソフト
- RANK関数 順位が同じだった場合の条件が2つあります
RANK関数で求めた結果が同じだった場合、別のフィールドを見に行って順位を同じにしない方法はわかりました。 RANK関数とSUMPRODUCT組み合わせすればいいんですね。 今回は条件が2つあります。 ゴルフの順位を求めたい。 まず結果にて順位を求めました。同じ順位だった場合「IN」の数字を見に行きます。そこでも同じだった場合(「OUT」が違えばありえますよね?) 次に見に行くのが年齢を見に行くそうです。 RANKにSUMPRODCTを2つ組み合わせてみたのですがうまくいきませんでした。 よろしくお願いします
- ベストアンサー
- オフィス系ソフト
- 順位付け
お願いします。順位付けのことで詰まっています。 1位から10位までの月順位を出しますが、同点の場合年間順位で順位を決定しています。 年順位 月順位 修正順位 2 1 1 7 2 2 10 3 10 9 3 9 8 3 8 4 3 5 1 3 3 5 3 6 3 3 4 6 3 7 同点が8個もあり、自動的に年順位を参照して順位決定できる方法 がわかりません。RANK関数の応用ができません。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- エクセルでの順位づけ
こんにちは 下のような表で、C列に順位をつけて、順位を出すのではなく、 名前を表示したい場合(5行目から7行目)は、どうしたらいいのか困っています。 この関数ならできるというのがありましたら、教えてください。 よろしくお願いします。 A列 B列 C列 (名前) (点) (順位) 1行目 いちろう 40 2 2行目 じろう 30 3 3行目 はなこ 50 1 5行目 第1位 はなこ 6行目 第2位 いちろう 7行目 第3位 じろう
- ベストアンサー
- オフィス系ソフト
- RANKIFのような関数ってありますか?
こんにちは、 知り合いから聞かれたのですが、A列に出席番号、B列に生徒氏名、C列に国立文系、国立理系、私立文系、私立理系、就職・専門というように進路希望があります。 1組~8組のすべてのクラス(各40人)に、進路希望の異なる生徒がいます(単位制高校なので授業はクラス単位で行わないのでいろんな生徒がいるらしいです)。英語と国語は進路希望とは関係なく同じテストをするのですが、英語と国語の学年順位やクラス順位はすぐにRANK関数で求められますが、国立文系の中での順位などを求める関数(やり方)はあるでしょうか? 私のアドバイスとしては、進路希望順にソートして、その中でRANK関数を用いて順位を出すと答えたのですが、値複写しておかなければソートしなおしたときにおかしくなります。ただ値複写すると、採点ミスなどで点数が変わるたびに、やり直さなくてはいけません。 私ならVBAを用いて、配列を使って並べ替えて書き込むというやり方にすると思うのですが、質問者はVBAがわからないので関数で何とかできないでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excelで順位をつけたい
お世話になります。よろしくお願いいたします。 エクセルでの順位の付け方です。 例えば、 国語、数学の2教科のテストの結果で順位をつけるとします。 列A 列B 列C 列D 行1 国語 数学 合計点 行2 A君 40 60 100 行3 B君 50 50 100 行4 C君 60 40 100 上記のような結果の時に普通に「RANK」を使うと、3人全員が「一位」になりますが、 合計点が同じ場合は、国語の点数が良い者から、「一位・二位・三位」になるようにしたいのです。 したがって、C君が「一位」・B君が「二位」・A君が「三位」になるようにするには、 どのようにすればよろしいですか?お教えください。
- ベストアンサー
- オフィス系ソフト
- エクセルで順位付け
お世話になります。宜しくお願いします。 RANK関数で同順位が出た場合に、指定した数値(条件)を参照して順位を出す方法をOK Wave等で探しました。私のニーズに一番近い問答が在りましたので(質問者:Kaizu35 質問No:965845さん)、それを引用させて頂きます。 A列 B列 C列 D列 No1 0.83 1 1 No2 1.29 4 6 No3 1.01 3 4 No4 0.88 2 2 No5 1.01 3 5 No6 0.88 2 3 上の表の様にRANK関数を使うとC列の様な順位になります。それをD列の様な順位にしたいのです。条件として、A列のNo1~No6の通り若い数字順、(例えば、No4の0.88が2位でNo6の0.88が3位とか、No3の1.01が4位でNo5の1.01が5位)の用に同じ0.88でも1.01でもNo4とNo6、No3とNo5ではNo4とNo3の方が若い数字なので、その若い数字の方が順位は上になるようにするには、どのような関数を使えばいいのでしょうか。(上記の説明でご理解戴けるでしょうか?) 当方、エクセル関数を始めたばかりですので、なるべく解りやすくご教授をお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル関数の順位つけで教えてください
順位つけで10行全部に関数を入れておき AとBに時間を入れた場合に、入れたところだけD列に 1から順位がつくようにする関数を 教えてください。
- ベストアンサー
- Windows系OS
- アクセスで順位付けしたいのですが・・・
成績表などをアクセスで作って管理していますが、順位をつけたいときはどうしたらいいのでしょうか? RANK関数みたいなものがあればいいのですが・・・。エクセルで別にランクをつけたものをインポートしなおとだめなんでしょうか?
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございます!解決しました。 ご指摘の通り、引数全体をかっこでくくっていませんでした。 助かりました。