• ベストアンサー

ExcelのRANK関数で。

こんにちは。宜しくお願い致します。 ゲームの得点を集計するフォームをエクセルで作成しているのですが、 もしも同点のものがあった場合は、順位をより上のセルに入力されているものが上位になるように設定したいのです。 例) B列(得点)  C列(順位) 10       2 20       1 10       3 10       4 と、このような形にしたいのです。 今現在、RANK関数を使用して作成していたのですが、同点の場合に不都合があることに気が付いて、その解決方法がわかりません。 もっとほかの関数を使うべきなのでしょうか? どなたか教えてください。宜しくお願い致します。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

まず、ランク関数で順位を求め、それにそこまで自分と同じ数が幾つあるかを足して-1すればいいのではないでしょうか? =RANK(A1,A:A)+COUNTIF($A$1:A1,A1)-1

yuki1326
質問者

お礼

こちらの方法でも、理想の結果が得られました。 沢山の方法があるのに、気付けない自分がハズカシイ限りです。。。 本当にありがとうございます。

その他の回答 (5)

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

随時データが増えたり減ったりしないなら 難しいことを考えずとも、連番をオートフィルで振ります 得点+連番でソート オートフィルで連番を振ります。これが求めるものです。

yuki1326
質問者

お礼

連番を振る作業列を増やすっていう解釈でいいのですよね? 確かに、これが一番シンプルな考え方かもしれませんね♪ 今回はちょっと複雑になっても作業列を増やさない方が理想的だったのですが、この方法は色々なところで応用できると思うので、参考にさせて頂きます。 まだまだビギナーな私ですが、エクセルって色々なことができて便利ですね。 この度は本当にありがとうございました。

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.4

=COUNTIF(A:A,">"&A1)+COUNTIF($A$1:A1,A1)

yuki1326
質問者

お礼

理想の結果が求められました! ありがとうございます。 関数の意味がイマイチまだ理解しきれていないですが、 がんばって解読してみます♪

noname#15459
noname#15459
回答No.3

kazedaです関数が間違ってました ↓コレでいけると思います・ =IF(B1="","",RANK(B1,$B$1:$B$4,))

yuki1326
質問者

お礼

質問の仕方がわかり難かったですね。すみません(TT 同じ順位の2を「2・3・4」に振りたかったので、 残念ながら今回はこの方法ではできなかったです。 でも、今まで$って使ったことがなかったので、今回勉強になりました! ご回答くださいまして、ありがとうございました。

noname#15459
noname#15459
回答No.2

=IF(B1="","",RANK(B1,$K$2:$K$5,)) をc列に 下にコピーで 下記のようになります 2 1 2 2

  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.1

作業列を使ってもよければ、こんな感じ p(..) 仮に作業列を F列とします。 F1: =B1+(1-ROW()/100) F4までコピー データが 100を超える場合は /100 を /1000にする。 この F列の数値で順位をつけます。 C1: =RANK(F1,$F$1:$F$4) C4までコピー

yuki1326
質問者

お礼

想像もつかないやり方でした! 色々な方法があるのですね。 今回はできれば作業列を使わない方法を探していますが、 また別の機会にこの方法を使えるように、しっかり覚えます! ありがとうございました。

関連するQ&A

  • RANK関数 同点の場合違う項目で序列を付けたい

    質問願います。 EXCELにて、RANK関数を使って順位付けをする事を理解しています。 スポーツの順位を勝ち点順に並べるのですが、総勝ち点が同点の場合、次に総得点で順位を確定させます。 この場合、順位付けする数値を勝ち点を優先参照・総得点を次に参照させる事は出来ますか? RANK以外の関数も併用すれば良いのでしょうか? どなたか回答お願い致します。

  • エクセル2010でRANK関数に条件を付けるとき

    エクセル2010を使っている者です。 RANK関数で順位をつけても同順位だった場合、他の条件で判定することは可能でしょうか? 過去の質問も見たのですが、私のしたいこととは違う事例なんですね。 具体的には、添付画像のような表でドント式で順位をつけようと思っています。 オレンジ色にしたセルに、一つ右のセルの値について数値の高い順に順位をつけていき(全列のオレンジ色のセルの右の値の中での順位です)、値が同じであれば「総数」の値の大きい列のセルのほうが上位になるというようにしたいと思っています。 どうぞ、よろしくお願いいたします。

  • エクセル関数

    獲得点によって順位を出すのにRANK関数を使ったのですが、同点のときも最高点を比較して高いほうを上位として順位のつけます。しかし、どのように数式を書いたらいいのかわかりません。すみませんが、教えてください。

  • RANK関数の同点の処理について

    RANK関数で同点の場合は同位として処理されると思っていたのですが、 なぜか同じ値でも同位で処理されない現象に遭遇して困っています。 RANK(数値、参照、順序)の数値が参照しているセルには、点数を算出する式が 入っています。 計算結果が同じ点数にも関わらず同位として処理されません。 参照するセルの値を数式ではなく直接入力した点数の場合は同位として 処理されます。 ランク関数の仕様として、数式の場合は同位と扱わないようになっていた 記憶もなく調べてもそのような記述のあるページも見当たりませんでした。 これは、バグ何でしょうか? 状態としては、B列のC列の得点差をD列で算出して、このD列の値を用いて 順位を出そうとしています。 D列の結果は、同じ点数で1位にならなければならい2行が片方は1位で もう片方は2位と表示されていまいます。

  • ランク(順位)の決定方法

    初心者です宜しくお願い致します。 ●状況 F6:F15に点数を入力しています。 G6に =IF(F6="","",RANK(F6,$F$6:$F$15))   .    .    . F15に =IF(F15="","",RANK(F15,$F$6:$F$15)) 上記のように設定してあります。 ●RANK関数を使用している為、F6の数字が同じ場合は、当然同じ順位が表示されます。 ーーーーーー ご指導いただき事。 ●F6:F15の数字が同じ(同点)場合でも、同順位を無くしたい。 ・同点の場合の順位決定条件   先着順、言い換えればセル番号の若い方を上位とし、表示したい。 RANK関数使用の場合 F列 ----- 点数 -- 順位 F6 ------- 30 ----- 4 F7 ------- 50 ----- 2 F10 ------ 60 ----- 1 F15 ------ 50 ----- 2 希望表示 F列 ----- 点数 -- 順位 F6 ------- 30 ----- 4 F7 ------- 50 ----- 2 F10 ------ 60 ----- 1 F15 ------ 50 ----- 3  ← 順位3と表示

  • エクセルでランクする時の同点の処理を教えて下さい

    ランク関数を使って順位を出そうと思います。同点の場合別の条件を当てはめて順位を出したいと思います。 チーム名  順位   得点   勝ち点  負け点  勝ち点差     A    4    1     1    6    -5  B    2    3     4    9    -5  C    2    3     5    3     2  D    1    5     8    2     6 数字は適当に当てはめたので、矛盾があるかも知れませんがこの様な場合、同点のチームだけ勝ち点差で順位をつけて、同順位の無いようにしたいのですが、どうすればいいのでしょうか。

  • 順位 RANK関数などで

    皆様にご質問です。 ある競技の得点表にて順位を付けたく書き込みしました 添付画像にて、2回の審査にて3名によるジャッジを行い 1回目の合計をG列、2回目の合計をK列に表示しております 合計の高い方を得点としてL列にMAX関数を使い表示しております M列に順位を表示する予定で 同点の場合、次の合計が高い方が順位が上にくる様にしたいので お教えいただければ助かります

  • エクセルのRANK関数について

    エクセルのRANK関数を使って、順位を表示させたいのですが、 空白セルと、"0"の値が1位にカウントされてしまいます。 これを除外して表示させる方法はあるのでしょうか? 以上よろしくお願いします。

  • EXCELで関数を用いて細かく順位付けするには

    EXCELで順位表を作成しています。 2つの項目で点数をつけ、合計点で順位をつけていますが(RANK関数)、 同点になった場合はスポーツの成績表のように 順位が同じ人が何人も出てしまいます。(12位が3人いたら次は15位という意味です) 2つの項目を"学科"・"実技"だとして、合計点で一旦順位を出し 最終的には"学科"の成績を優先し細かく順位をつけたいと思っています。 その際全体の中からCOUNTIF関数で同点の人が複数いるケース(結果が1にならないケース)を検索しても、 その同点グループの範囲を表す事が出来ないので、その中で優越をつける事も出来ません。 一致した範囲を目で見ながら手入力してRANK関数で順位をつけることは出来ますが、 出来れば自動で出来ればなと思います。 説明がわかりにくいかとは思いますが、ご指導頂けると幸いです。よろしくお願い致します。

  • エクセル 関数?マクロ?をご教示下さい。

    御指導宜しく御願いいたします。 ★現状下記のように処理しています。 ●入力状況 Q6:Q125に会員番号 S6:S125に氏名 T6:P125に1回戦の得点 V6:V125に2回戦の得点 Y6:Y125に3回戦の得点 AB6:AB125に4回戦の得点 AE6:AE125に5回戦の得点 AH6:AH125に6回戦の得点 AI6:AI125に1回戦から6回戦の合計得点数 P6:P125にAI列の合計得点を基にRANK関数で順位を表示させています 「=IF(AI6="","",RANK(AI6,$AI$6:$AI$125))」 ●更新マクロで1位から125位まで並べ替えています 同点の場合、現在は会員番号順(昇順)に並べています ★御指導いただき事 合計得点が同点の場合の処理方法 1・Q6の人(会員番号10のA氏)とQ7の人(会員番号20のK氏)が同点の場合  現在は、A氏・K氏と並びP6とP7にはいずれも 1(位)と表示されていますが これを各人の1回戦から6回戦の最高得点を比較し高得点の人を上位としたい。 例 A氏の最高得点 → 3回戦の30000点  K氏の最高得点 → 5回戦の31000点       P列  Q列   S列        1   20    K        2   10     A 2・途中、6行から125行まで同点があれば、同様処理をしたい 3.尚、このワークシートは初期化し次回も使用したい。

専門家に質問してみよう