- ベストアンサー
連続しない範囲が複数ある場合の順位の出し方について
- Excelで連続しない範囲のデータの順位を出す方法について教えてください。
- 学校でのクラス分けで、テストの成績に基づいて習熟度別にクラスを分けたいですが、データの範囲が連続していなくて困っています。
- 順位を求めるためにrank関数を使用したいですが、連続しない範囲のデータにどのように適用すればいいのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>順位は#VALUE!と出てしまってできないのです。 念のためにおたずねしますが、2番目の引数の全体をかっこでくくられましたか?手元の2007の97-2003互換モードでは、かっこでくくればうまくゆくのですが・・・
その他の回答 (4)
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!と出てしまってできないのです。
お礼
ありがとうございます!解決しました。 ご指摘の通り、引数全体をかっこでくくっていませんでした。 助かりました。