- ベストアンサー
順位付け
A B C D E 1 A 6 5 2 3 2 B 3 4 1 1 3 C 9 5 3 5 4 D 6 4 2 1 5 D 0 4 0 -4 A列、チ-ム名 B列、勝点 C列試合数 D列、勝数 E列、得失点差 このようなシ-トがある場合、別のセルに1位~5位までの順位付けする関数を教えてください。 尚、勝点が同点場合は得失点差を考慮します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは~♪ こんな表の場合です。。。 A B C D E F [1] チーム名 勝点 試合数 勝敗 得失点差 順位 [2] A 6 5 2 3 2 [3] B 3 4 1 1 4 [4] C 9 5 3 5 1 [5] D 6 4 2 1 3 [6] D 0 4 0 -4 5 F2セルへ =SUMPRODUCT((($B$2:$B$6+$E$2:$E$6/1000)>B2+E2/1000)*1)+1 下へコピー。。。 ご参考にどうぞ。。。 。。MS.Rin~♪♪
その他の回答 (2)
- hallo-2007
- ベストアンサー率41% (888/2115)
作業列使います F1セルに =D1*100+E1 得失点差 最大(100までとして) (或いは =D1+E1/100) 下フィル G1セルには =RANK(F1,F$1:F$5) 下フィルで如何でしょうか。
お礼
返事が遅れました。 参考にしてみます。
- x-nishi
- ベストアンサー率36% (60/164)
残念ながら、一発で順位付けができる関数はありません。 自分も同じようなシートを作成しましたが、そこには LARGE, VLOOKUP, IF などをふんだんに使いまくり、 とても横長のシートが出来上がりました。 (あまりに見づらいので別のシートで計算をさせて、 順位を表すシートに反映させています。) あと、ヒントとしては、勝ち点、得失点差、の順に優先させてチェックしなければいけないわけですが、 例えば勝ち点には100をかけ、それに得失点差を足す、ということをすると、上の例なら A 603ポイント B 301ポイント C 905ポイント D 601ポイント E -4ポイント となり、C, A, D, B, E という順位をはじき出すことができます。 これをLARGE関数で大きい順にソートし、VLOOLUP関数でポイントとチーム名と一致させます。 あとは元の表を並べ替えるために、チーム名とそれぞれの値をVLOOKUP関数で一致させます。 これ以上は長くなるので、まずはやってみてください。
お礼
返事が遅れました。 参考にしてみます。
お礼
返事が遅れました。 教えてもらった関数とvlookup関数と組み合わせでできました。 ありがとうございました。 今後ともよろしくお願いします。