• ベストアンサー

エクセル 同順位の処理

いつもお世話になっております。  上位3名の合計点を求める時に、同順位(例:1位1名・2位1名・3位2名)が出た場合、3位者(同順位者)については1名のみの点数を計算したいのですがその方法がわかりません。よろしくお願いします。  また、2位が2名の時は、1位と2位の3名の合計点の計算となります。  順位はRANK関数を使用しています。 得点 順位 上位合計点 98  1 80  3 76        ? 82  2 80  3 よろしくお願いします。

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

  • ベストアンサー
  • jindon
  • ベストアンサー率43% (50/116)
回答No.3

=LARGE(得点範囲,1)+LARGE(得点範囲,2)+LARGE(得点範囲,3) で、常に上位三つの点数の和になります。

taroimo_7979
質問者

お礼

いろいろな方法があり、勉強になりました。ありがとうございました。一番簡単な方法のようです。

すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.5

同順がでる場合は、重み付けをして同順がでないようにします。 (1)仮に一行目から、A列:No.、B列:得点、C列:重み付け得点(作業用)、D列:順位とします。(データ数は仮に10とし、No.は10まで記入) (2)C2に=B2+0.5*A2/(MAX($A$2:$A$11))を入力して、11行までコピー (3)D2に=RANK(C2,$C$2:$C$11)として、11行までコピー (3)上位三位まで合計したいセルを=SUMIF(D2:D11,"<=3",B2:B11) とします。

taroimo_7979
質問者

お礼

いろいろな方法があり、勉強になりました。ありがとうございました。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

ユーザー関数を作るとすれば VBEの標準モジュール画面に下記を貼りつけると良い。 Function rankx(a, x) Dim cl As Range Dim b(1000) n = 0 For Each cl In a n = n + 1 b(n) = cl Next '---- For i = 1 To n For j = i + 1 To n If b(i) > b(j) Then Else w = b(i) b(i) = b(j) b(j) = w End If Next j Next i '---- t = 0 For i = 1 To x t = t + b(i) Next i rankx = t End Function 骨子はソートをしただけのもの。 データ数1000以下であること。以上の時はDim b(1000) を増やすこと。 下位から数える時は、上記ソートの部分のコードを昇順向きに組替えないといけない。 シートで結果を出したいセルに =rankx(A1:A10,4)のように関数を入力する。 A1:A10はデータの入っているセル範囲、4は上位 4個を取る(4,5位同一データであればどちらが取られるかは偶然)ことを意味する。

taroimo_7979
質問者

お礼

いろいろな方法があり、勉強になりました。ありがとうございました。

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

順位の計算は =RANK($A1,$A$1:$A$5)+ROW()/100 (最後の100は人数に合わせて調整してください。) 上記の例だと 得点 順位 上位合計点 98  1.01 80  3.02 76  5.03 82  2.04 80  3.05 になります。 上位合計点は =SUMPRODUCT((RANK(B1:B5,B$1:B$5)>=3)*(A1:A5)) 順位は表示形式で小数点以下桁数が0にしてください。

taroimo_7979
質問者

お礼

いろいろな方法があり、勉強になりました。ありがとうございました。

すると、全ての回答が全文表示されます。
  • imaruya
  • ベストアンサー率34% (63/181)
回答No.1

A列  B列  C列 98 =rank(a1,$a$1:$a$5,false) =sum($a$1:$a$3) 80 =rank(a2,$a$1:$a$5,false) 76 =略 82 =略 80 =略 として、順位計算をさせた後、a1~b5セルを選択してB列で昇順にソートをかければ順位番号如何に関わらず上位3名の合計点を計算できます。

taroimo_7979
質問者

お礼

いろいろな方法があり、勉強になりました。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A