• 締切済み

エクセルで成績に順位をつける方法

グラウンドゴルフの成績順位を決める場合、次のルールがあります。 1)スコアの少ない(小さい数字)のが上位 2)スコアが同数の場合、「1打」(ホルインワン)が多い人が上位 3)スコアが同数で、「1打」も同数の場合、「2打」の多い人が上位 4)スコア、「1打」、「2打」も同数の場合は、同一ランクとする 下記はの「順位」はRANK係数でつけた場合ですが、これを→にする方法をご教示下さい。 氏名  スコア  1打数  2打数  順位  →修正 A     66     4     12     1     1 B     66     3     14     1     2 C     71     3     14     3     3 D     72     3     15     4     4 E     72     2     10     4     5 F     74     3      9     6     7 G     74     3     11     6     6

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>下記はの「順位」はRANK係数でつけた場合ですが、これを→にする方法をご教示下さい。 RANK関数で順位を付けなくても並び替えで十分です。 1.スコアをキーとして昇順を指定する 2.1打数をキーとして降順を指定する 3.2打数をキーとして降順を指定する 上記3条件を指定して並べ替えをすれば一発で目的の順位に並べ替えられます。 添付図の上は3条件を指定した状態です。 下は実行結果になります。

Glenfidich
質問者

お礼

質問を投稿する前に、私も同じ方法で並び替えをしたのですが、並び替えは出来ても順位の表示を出す方法が煩雑だったのでやめました。結果的に、回答No.1及びNo.2の方の手順で作業を進めた結果、予期通りの結果を得ることが出来ました。ご丁寧なご回答有難うございました。

回答No.2

作業列を、1列使う方法になってしまいますが。 F2に、 =B2*10000+(100-C2)*100+100-D2 を入れ、下へコピー。 E2に、 =RANK(F2,$F$2:$F$8,1) を入れ、下へコピー。 作業列(F列)は、非表示にするとかして目立たないように する必要がありますが・・・ ※前提として、ホール数は100以下(=1打、2打とも100以下)で考えてあります。

Glenfidich
質問者

お礼

出来ました!有難うございました。ただ、ご教示頂いた公式にやみくもに従って投入しただけなので、どうしてこの公式に至るのかの論理的な背景が判ればもっとスッキリしたと思います。回答NO1の方の手順でも出来たので、両方にベストアンサーにしたいのですが、ベストアンサーは一人に限る由ですので、双方共に外させて頂きました。心情としてはお二人に差し上げたかったとの気持ちだけお伝えします。ご協力有難うございました。

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

こんばんは! 一例です。 ↓の画像のように作業用の列を1列設けます。 作業列G2セルに =IF(COUNTBLANK(B2:D2),"",RANK(B2,B:B)*10000+C2*100+D2) という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 結果のE2セルに =IF(G2="","",RANK(G2,G:G)) という数式を入れオートフィルで下へコピー! これで画像のような感じになります。m(_ _)m

Glenfidich
質問者

お礼

出来ました!有難うございました。ただ、ご教示頂いた公式にやみくもに従って投入しただけなので、どうしてこの公式に至るのかの論理的な背景が判ればもっとスッキリしたと思います。回答NO2の方の手順でも出来たので、両方にベストアンサーにしたいのですが、ベストアンサーは一人に限る由ですので、双方共に外させて頂きました。心情としてはお二人に差し上げたかったとの気持ちだけお伝えします。ご協力有難うございました。

関連するQ&A

専門家に質問してみよう