• ベストアンサー

rank関数?

次のような表があって、順位をつけたいのですが、 別シートに順位順の表を自動的に作成する事は可能 なのでしょうか? よろしくお願いいたします。 ↓の表でまず順位をだしてからでも良いのですが      件数   順位 Aさん   5    5 Bさん   0     Cさん   4    6 Dさん   2    7 Eさん  10    1 Fさん   2    7 Gさん   6    4 Hさん   0     Iさん   7    3 Jさん   8    2 別シートに順位順の表を作成したいのです。 順位          件数 1     Eさん   10 2     Jさん    8 3     Iさん    7 4     Gさん    6 5     Aさん    5 6     Cさん    4 7     Dさん    2 7     Fさん    2 何か良い方法があるでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

技巧的ですが、定番的かな。 Rank関数の同値同番を修正します。 例データ A2:B10 A列  B列  C列  D列(C,D列は下記関数の結果) a 5 503 1 b 3 302 5 c 5 502 2 d 5 501 3 e 2 201 7 f 1 102 8 g 3 301 6 h 1 101 9 i 4 401 4 C2に =(B2&TEXT(COUNTIF($B2:$B$10,B2),"00"))*1 下方向に式を複写 D2に =RANK(C2,$C$2:$C$10) 下方向に式を複写。 *1は数値化するため。 TEXT(COUNTIF($B2:$B$10,B2),"00"))の"00"は同値が1-99個以下という看做しでやってます。999以下予想なら"000"です。 サブ番号を振っていることになります。 ーー 後は、OKWAVEで「imogasi方式」で照会してください。別シートに(ランク数字やカウント個数順数などの)数字順に並べる回答を、沢山私が載せてます。 別シートの行番号(-1)と同じRANK順位番号の行を、別シートに持ってくる関数(組み合わせ)です(INDEX関数とMATCH関数の組み合せ)。

その他の回答 (2)

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.2

ピボットテーブルを使ったらどうでしょうか? 元の表にタイトルを入れておきます 氏名   件数   順位 Aさん   5    5 Bさん   0   ・    ・ 「データ」-「ピボットテーブル~」で作成先を「新規のシート」にします。 行のフィールドに「氏名」をデータアイテムに「件数」をドラッグします。 件数を降順で並べ替えます。 順位を表示するなら、左の行にRANK関数で追加します。 元の表を修正したら、「ピボットテーブル」ツールバーの赤い「!」を押せば更新されます。

  • somemaru
  • ベストアンサー率33% (2/6)
回答No.1

質問の例だと9人ですよね? 対象とするデータが9つだとして、もっとも簡単と思われる(excel内のヘルプを参照すればすぐに解決する)回答例です。 別のシートにそれぞれ参照するセルを絶対値参照して、rank関数で順位をつけたセルを囲んで並べ替えのアイコン「AZ↓」で並べ替える。 順位をつけたいデーターが少ないのであれば、この程度の手順で充分ではないかと思いますが...。もっと「自動化(VBでマクロ化)」されたいのであればまったく参考になりませんが、質問内容から類推しました。失礼があったらお許しを。

poponta9999
質問者

お礼

ありがとうございます。 すみません。質問が言葉足らずで・・・・ 人数は100名近くになります。 マクロ化しないとだめでしょうか?