• ベストアンサー

エクセル関数を教えてください。

 A*B*C*D**総計**順位**MAX-MIN(A1-D1)   1)3*1*2*5**11*****3****2  2)5*7*3*1**16*****1****6 3)1*3*5*2**11*****3****4 4)2*7*4*1**14*****2****6 上のようにスポーツの得点を集計します。総計数で =RANKで順位を確定しようとしたら同得点で エラーになってしまいます。 同順位の場合、MAX-MIN(A1-D1)(得失点差の少ない 方を上位に認定する考えで)の数字の小さいほうに 上位大きいほうに下の順位となるよう設定したいのですが どのような数式を当てはめればいいか悩んでいます。 回答よろしくお願いします。

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

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

>=RANKで順位を確定しようとしたら同得点で,エラーになってしまいます。 これは事実と違うのじゃないですか。エラーにはならないはず。 質問の例では 3 1 3 2 となって RANK関数では 同得点は同順位になる 次の成績の順位は 同順位の前の順位(上記では2番)+同順位の人数(3である2人) +1(すなわち5)からランクがつけられる。 ーー 得失点差勘案 作業列に =F1+1/K1を計算する。F1は合計点、K1は得失点差。 そして下方向に式を複写する。 F列(合計点) 11 16 11 14 9 J列(得失点差) 2 6 4 6 3 L列(得失点差逆ウエイト勘案) 式は=F1+1/J1 得失点差が小さいほうが有利なように(値が大きくなるよう)何分の1という、逆数を取ってます。 合計点による順位を大枠崩さないように、得失点差逆ウエイトは1未満の値になるよう1/(得失点差)にしてます。 11.5 16.16666667 11.25 14.16666667 9.333333333 M列(順位、L列の値を元に通常のランク関数でランクを出してます) M2式 =RANK(L1,$L$1:$L$10) 3 1 4 2 5 ーー 以上は作業列を使ってます。作業列を使ったほうが、式の考え方が易しくなります。これで理解したうえで、関数の通になりたければ、既回答の式など勉強し、式の理解に挑戦してください。

arojun
質問者

お礼

ありがとうございます。 関数に関する実例集など見たのですが 不確定な相手に対する2次条件付け っていうのでしょうか?その部分がわからなく 悩んでました。 回答ありがとうございました。

その他の回答 (2)

noname#204879
noname#204879
回答No.2

「スポーツの得点を集計」法のルールを知らないのでお尋ねしたいのですが、1行目の「得失点差」はどうして 2 になるのですか?

arojun
質問者

お礼

ありがとうございます。 週末の試合に間に合う表が作成できました。 ご協力に感謝します。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

    A   B   C   D    E   F    G 1   A   B   C   D   総計 順位 得失点差 2   3   1   2   5    11   3    2 3   5   7   3   1    16   1    6 4   1   3   5   2    11   4    4 5   2   7   4   1    14   2    6 F2=MATCH(1,INDEX(((E2-G2*10^-5)=LARGE($E$2:$E$5-$G$2:$G$5*10^-5,ROW($1:$4)))*1,),0) ★下にコピー

arojun
質問者

お礼

ありがとうございました。 問題解決して週末の試合に 間に合いました。 関数を複数組み合わせるのは 難しいけど、覚えるとすごく便利ですね。 今回の件に感謝しつつもう少し 勉強して、困っている方に 教えてあげられるようになりたいです。 皆さんほんとにありがとうございました。