Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

エクセルで大会順位表作成

釣りの会で得点表をエクセルで作ろうと思っております。 釣果(匹数)で順位決定して、順位により 1位100点、2位90点 3位80点 4位70点 5位60点 6位50点 7位以降は参加点として10点それぞれ獲得します。 順位付けまではRANK関数でできたのですが、 順位による配点、また同率順位があった場合、 たとえば同率3位が3人いた場合、 3位4位5位の合計得点の210点の平均で70点を同率3位の3人に配点する、 いうよな処理をしたいのですが、 よろしくお願いいたします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.1です。 補足の件について・・・ ↓の画像のようにF・G列を作成しておいてください。 (F列の順位は人数分作成し、10位以降はすべて10と入力しておきます) 今回は少し数式を短くしてみました。 D2セルに =AVERAGE(INDIRECT("G"&MATCH(C2,F:F,0)&":G"&MATCH(C2,F:F,0)+COUNTIF(C:C,C2)-1)) という数式を入れオートフィルでコピー! これで画像のような感じになります。 何とかご希望通りになったでしょうか?m(_ _)m

NOJNOL
質問者

お礼

ありがとうございました。 大変助かりました。

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

その他の回答 (3)

  • kagakusuki
  • ベストアンサー率51% (2611/5102)
回答No.4

 今仮に、回答No.1様の添付画像にある様に、C列の2行目以下に順位が表示されていて、D列に配点を表示させるものとします。  まず、F列とG列を使用して、順位と得点の一覧表を、        F列    G列 1行目   順位    配点 2行目    1     100 3行目    2      90 4行目    3      80 5行目    4      70 6行目    5      60 7行目    6      50 8行目    7      10  という具合に、1位~7位までのみ作成して下さい。(別に、順位が7位以降の分まで作成しても構いませんが、必要なのは7位までの分だけです)  次に、C2セルに次の関数を入力して下さい。 =IF(ISERROR(1/(ABS(INT($C2))=$C2)),"",(SUMIF($F:$F,"<="&COUNTIF($C:$C,"<="&$C2),$G:$G)-SUMIF($F:$F,"<"&$C2,$G:$G)+VLOOKUP(9E+99,$F:$G,2)*(COUNTIF($C:$C,"<="&$C2)-MAX($C2-1,MAX($F:$F)))*(COUNTIF($C:$C,"<="&$C2)>MAX($F:$F)))/COUNTIF($C:$C,$C2))  そして、C2セルをコピーして、C3以下に貼り付けて下さい。  以上です。

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

こんな感じでどうかなぁ…… 表が図の様になっているとします。 色がついていないところは最初から入力されているものとします。 (1).H2セルに↓といれてCtrl+Sift+Enterで配列数式として確定し、H8までコピー。 =MAX(IF(C:C<=F2,C:C)) (2).F8セルに↓といれてCtrl+Sift+Enterで配列数式として確定。 =MIN(IF(C:C>6,C:C))-1 (3).G8セルに↓ =10*(F8-F7) (4).D2セルに↓と入れて、下までコピー =MAX(10,SUMPRODUCT(($H$2:$H$8=C2)*($G$2:$G$8))/COUNTIF(C:C,C2))

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

こんにちは! 一例です。 ↓の画像のようにF・G列に表を作成しておきます。 D2セルに =IF(C2>6,10,IF(COUNTIF(C:C,C2)=1,VLOOKUP(C2,F:G,2,0),SUM(INDIRECT("G"&MATCH(C2,F:F,0)&":G"&MATCH(C2,F:F,0)+COUNTIF(C:C,C2)-1))/COUNTIF(C:C,C2))) という数式を入れオートフィルでコピー! これで画像のような感じになります。 ※ エラー処理はしていません。 数式を作成中に疑問点が出てきました。 (1)仮に6位が2名いた場合6位の50店と7位の10点を分け合えばよいのでしょうか? アップしている表では6位が3名いますので、50点と10点(二人分)を3人で分け合っています。 (2)(1)と同様の考えになりますが、5位が3名以上・4位が4名以上等々の場合 点数の振り分け方法がどうなるのか? 色々な状況の場合を考えると、上記数式で一発解決!といかず、 別の方法を考えないといけないはずです。 その時は再質問してください。m(_ _)m

NOJNOL
質問者

補足

早速のご回答、大変ありがとうございます。 ご指摘の通り、私のミスがありました。 獲得得点、10位以降が10点で7位40点、8位30点、9位20点、10位10点でした。スミマセン。 数式にその様に数値を入替えてみたのですが、うまくいきません。再度、ご教授いただけると、ありがたいです。 よろしくお願いします

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

関連するQ&A