• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:連続しない範囲が複数ある場合の順位の出し方について)

連続しない範囲が複数ある場合の順位の出し方について

このQ&Aのポイント
  • Excelで連続しない範囲のデータの順位を出す方法について教えてください。
  • 学校でのクラス分けで、テストの成績に基づいて習熟度別にクラスを分けたいですが、データの範囲が連続していなくて困っています。
  • 順位を求めるためにrank関数を使用したいですが、連続しない範囲のデータにどのように適用すればいいのでしょうか?

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

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

>順位は#VALUE!と出てしまってできないのです。 念のためにおたずねしますが、2番目の引数の全体をかっこでくくられましたか?手元の2007の97-2003互換モードでは、かっこでくくればうまくゆくのですが・・・

CaveatEmptor
質問者

お礼

ありがとうございます!解決しました。 ご指摘の通り、引数全体をかっこでくくっていませんでした。 助かりました。

その他の回答 (4)

noname#262398
noname#262398
回答No.5

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"))

CaveatEmptor
質問者

お礼

回答ありがとうございます。 う~ん、複雑ですね。少し時間をかけて解読したいと思います。

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.3

C列のランクに関係のないデータの表示形式を文字列に変更することが可能なら、予め文字列に変更しておけば、範囲を $C$21:$C$370 としても支障なくランクが計算されます。(Excel 2003) ただし、数式を370行までオートフィルした時、文字列の部分は #N/A のエラーが表示されますので、削除する必要があります。

CaveatEmptor
質問者

お礼

回答ありがとうございます。 他のクラスの得点を文字列にするわけにはいかないのです。クラスごとや学年全体の平均も必要ですし、質問には書いていませんでしたが、他に2組と4組も3クラスに分けて習熟度別授業をしていますので。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

作業列使いますが     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,"標準","基礎"))) 入れて下までコピィしてみては如何でしょうか。

CaveatEmptor
質問者

お礼

回答ありがとうございます。 やはり作業列が要りますね。マクロで配列を使ってやるしかないでしょうかね。

noname#96418
noname#96418
回答No.1

2番目の引数を ($C$21:$C$60,$C$121:$c$160) のように入力してみてください。 2007ではこれで OK です。

CaveatEmptor
質問者

お礼

回答ありがとうございます。 Excelのバージョンは2003なんです。平均はお示しいただいた方法でできるので、試してみたのですが、順位は#VALUE!と出てしまってできないのです。

関連するQ&A