• 締切済み

順位を求める時の考え方

最近答えた質問で、力不足でお役に立たなかったランキングの考え方を教えてください。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1235529 No.5ではこう考えました。 勝ち数、負け数、年齢を2桁までとし、 全部の数字を足した時に重要なものから大きい桁の2桁ずつに表示されるように それぞれに数字をかけました(勝率に100をかけて桁を揃えます)。 この合計数で大きいものから順位をつけて行きたいと思ったのです(年齢にマイナスを掛けたのは間違い)。 更に後半では質問者さんから 同順位になったときに、どう判断させるかが詳しく書かれています。 考え方は面白いと思うのですが、 頭が働かず、質問者さんがおっしゃっている本当の考え方を100%理解することができませんでした。 ためしにExcelで作った表は次のようなものでした。 Excelをお持ちの方はお試しください。 B1から右に 勝数、負け、試合数、勝率5割以上か、勝率、年齢、作業列、ランク、A、B・・・~H A2から下にA~H B2に =SUM(J2:Q2)←下までコピー C2に {=TRANSPOSE(J10:Q10)}    ↑C2:C9を選択して=TRANSPOSE(J10:Q10)と入力し、Ctrlを押しながらShiftを押しながらEnterキーを押す。 D2に =IF(C2="","",SUM(B2:C2))←下までコピー E2に =F2>=0.5 F2に =B2/D2←下までコピー G2から下に年齢を統一し、全部20と入力 H2に =B2*10000+E2*10000+F2*100+G2←これを右にコピー I2に =RANK(H2,$H$2:$H$9) J2を灰色に塗りつぶし、ここに入力できないという目印にします。 右下のセルを一つずつ塗ってゆきます(自分と自分の対戦はできないため)。 H10に =SUM(J2:J9) 私は優先順位をよく理解していないようです。 たまたまExcelで作ったのですが、Excelをお持ちの方もそうでない方も この順位の考え方を私にもわかるように説明していただけないでしょうか。 本当にこういった考え方が苦手なのです。

みんなの回答

  • eatern27
  • ベストアンサー率55% (635/1135)
回答No.1

質問は、元の質問の質問者さんの(2)の順位の決め方、ですか? "勝ち数-負け数"の大きい人が上位 "勝ち数-負け数"が同じ人の中では、勝ち数が多い人が上位 (さらに、勝ち数も同じなら、年齢などで?) というアルゴリズムでやればよいと思われます。 このアルゴリズムでやれば、元の質問の#6さん,#12さんへの補足通りの順位になりますしね。 Excelの方は >H2に =B2*10000+E2*10000+F2*100+G2←これを右にコピー これでは、 勝数(勝率が5割以上なら1を足す)の多い人が上位 ↑で同順位の人は、勝率(単位%)+年齢の大きい人が上位 というルールになりませんか?(あと、下にコピーですよね?) >H10に =SUM(J2:J9) J10に、でいいですか?

maccheroni
質問者

お礼

> "勝ち数-負け数"の大きい人が上位 あらら引き算のために1列挿入しなくては。 > 勝数(勝率が5割以上なら1を足す)の多い人が上位 > ↑で同順位の人は、勝率(単位%)+年齢の大きい人が上位 なるほど年齢以外はあと余分に100倍すればいいんですね。 下にコピーです。 J10に、でした。

関連するQ&A

  • 複数の列の数字から順位を求める方法

    A列氏名、B列勝数、C列負数、D列対局数、E列勝率 の表に何人かのデータが入力されていてF列にその順位を表示させるにはどのような計算式をF列のセルに入れればよいでしょうか。ただし次の条件つきです。 (1)勝数の多いものを上位、同一勝数の場合は勝率の高い方を上位とする場合 (2)勝率の高い方を上位とするが、その者がA勝B敗 のとき(A+C)勝(B+D)敗の者のほうを上位とする場合 ただし、A,B,C,Dは正の整数でC>=Dのとき また (3)別の列(全員の分)に全員の相互の対戦の勝ち 負けが分かるようになっているとき、(1)とくみあわせ 勝数の多い者を上位、同一勝数のときは当事者同士の 勝者を上位、ここで3すくみになったときは勝率の高い方を上位と決めたとき (4)同様に(2)の条件で順位が同一となったとき当事者同士の勝った方を上位とする場合 の4種類の条件ごとに順位を表示させる計算式を教えてください

  • 同じ順位同士をさらに条件をつけて順位付けしたい

    EXCELのご相談です。 ゲームなどした時に 同じ順位が複数あった場合(例 1位が3人とか4位が2人など)、条件をつけて1位3人→1位、2位、3位  4位→4位、5位 のようにしたいのですが、どのような数式にしたらいいでしょうか。 添付の図でいいますと、順位(C列)1の人が2~4行の3人、順位4の人が5~6行の2人、順位7の人が8~9行の2人いた場合、同じ順位の中でイが多い人が上位、イの数が同じならばロが多い人が、またイ、ロとも数が同じならば ハの数が多い人が上位としたいのです。

  • エクセルでの順位付け

    エクセルでの順位付けについて教えて下さい。 下記のような順位付けをしたいのですがどのような操作をしたらよいでしょうか。 A 30    1 D 50 B 10  → 2 A 30 C 30    2 C 30 D 50    4 B 10 (得点の多い方から1,2,3・・とし、同点の場合は同順位として次の順位を空位にする)

  • EXCELで複数のグループ内での順位を表示させたい。

    EXCELで複数のグループ内で順位を表示させるようにしたいのですが、 どうすれば良いかわからず困っています。 たとえば、こんなデータがあるとします。 (A列)(B列) 名前  スコア あああ 10 あああ 20 あああ 30 あああ 40 いいい 5 いいい 20 いいい 60 いいい 65 いいい 70 いいい 80 いいい 90  ・   ・  ・   ・  ・   ・ こようなデータを名前別でスコアの降順で順位をつけたいのです。 (A列)(B列) (C列) 名前  スコア 順位 あああ 10  4 あああ 20  3 あああ 30  2 あああ 40  1 いいい 5  7 いいい 20  6 いいい 60  5 いいい 65  4 いいい 70  3 いいい 80  2 いいい 90  1  ・   ・  ・   ・  ・   ・ 名前の種類の数もかなりあります。 このようにグループ内で順位を表示させるにはどのようにしたらいいでしょうか? EXCELは初心者なため、どなたかお詳しい方、どうか宜しくお願い致します。

  • 順位をつける

    エクセルで、A列に名前、B列に点数が記載されている時、名前の順番を変更せずにC列に、順位番号を振りたいのですが、方法をお教えください。

  • エクセル数式について

    エクセル初心者です 2つ質問させてください。 質問 1  表計算をしています エクセルの数式をドラッグしてコピーすると =SUM(H18*C18) =SUM(H19*C19) =SUM(H20*C20) となりますが たとえば =SUM(H18*C18) =SUM(H18*C19) =SUM(H18*C20) 一つのセルを固定して計算させる このようなコピーの方法は可能でしょうか? 質問 2 データの入力規則を設定するとき 入力値の種類→ユーザー設定→数式 この(数式)の部分を別のSheetのセルを範囲指定して 設定する方法は可能でしょうか? 分かりにくくてすみませんが お知恵を貸してください。 よろしくお願い致します

  • エクセルで順位をつける関数教えてください

    エクセルで4つのデータの順位をつける方法(関数)を教えてくだい。 0~+域が上位で、-域は0に近いほうが上位にしたい。 例:データ             →  順位がこうなる  A    B    C    D    A   B  C  D -36  -26  -16   6     4  3  2  1 -16   0    6   16     4  3  2  1

  • Excel IF関数 順位

    エクセルで B1に今回の順位 C1に前回の順位 を入力し、A1に↑,↓,←,NEW と表示されるようにしたいのですが、上手くいきません(>_<) このように入力しました =IF(C1=不参加,"NEW",IF(C1=圏外,"↑",IF(B1=C1,"←",IF(B1<C1,"↑",IF(B1>C1,"↓",)))))

  • C#で、優先順位をつけてメソッドの呼び出しを調整したいのですが、どんな

    C#で、優先順位をつけてメソッドの呼び出しを調整したいのですが、どんな方法があるでしょうか? ・メソッドA,B,Cがある ・共通に利用するメソッドQがある ・A,B,Cは、別々のスレッドからメソッドQを呼び出す ・他のメソッドがQを利用している間は、B、Cは待ち状態にしたい ・A>B>Cの優先順位があり、BがQを使用していて、Cが待ち状態の時、その後AがメソッドQを利用を要求したら、次にQを使えるのはAにしたい どうぞよろしくお願いします。

  • 同順位のときに別な条件を用いて比較し順位を決める

    Excelで図のように同順位が出た場合、特定のセルとセルの値を比較して処理し、同順位がない状態にしたい時、どのような関数を組めばいいでしょうか。 競技:10分間で問題文をストレートコピーする。誤字脱字等があった場合にはエラーとし、1エラーにつき10文字分減らすものとする。 「純成績」で順位を競います。多い方が上位、少ない方は下位となります。 「純成績」は次のような方法で算出されます。 「純成績」=「入力した文字数」-「エラー数」✕10 しかしながら、図にあるように、RANK関数を使って「純成績」をもとに順位をつけると同じ「純成績」の場合は同順位となってしまいます。 理想としては、同じ「純成績」が存在する場合は、それぞれの「エラー数」を確認し、「エラー数」が少ない方を上位、「エラー数」が多い方を下位として、「順位」を表示させたいのです。 詳しくは図を御覧ください。 以上より、質問はこちらです。 Q.「E12(E2)」にどのような関数を設定すれば、実現できるでしょうか。 ※オートフィルを用いて「E18(E8)」までそれぞれ関数を入力するものとする。 ご回答よろしくお願いします。