- ベストアンサー
RANK関数の同順位の計算方法について
- RANK関数を使用して、A, B, C列のデータを元にE, G, H列に10位以内の順位を計算する方法を知りたい。
- グーグルスプレッドシートで同順位で同じ名前が表示されてしまう問題について、解決方法があれば教えてください。
- H2:H11の関数を変更して、同じ順位で異なる名前が表示されるようにしたい。可能な場合、具体的な変更方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>G2の関数は、=SMALL($B$2:$B$300,1) 提示の数式ではG2を下へコピーするとすべて同じ値になります。 =SMALL($B$2:$B$300,1) → =SMALL($B$2:$B$300,ROWS(G$2:G2)) >H2の関数は、=INDEX($A$2:$A$300,MATCH(E2,$C$2:$C$27,0)) にしています。 MATCH関数で照合の種類を0にすると範囲に同一値が有るとき最初に見つけた行番号を返しますので同順の2番目以降を抽出できません。 行番号を抽出する手法を変えなければ目的に合いません。 H2の数式は次のようにしてみると良いでしょう。 =INDEX(A:A,MOD(SMALL(INDEX($B$2:$B$300+(B$2:B$300=0)*(MAX(B$2:B$300)+1)+ROW(H$2:H$300)/1000,0),ROWS(E$2:E2)),1)*1000)
その他の回答 (3)
- mt2015
- ベストアンサー率49% (258/524)
あ、ごめんなさいG列は「位」が入っているんですね。 じゃあ、E:G列は現在のままでもいいですから、I列をANo.2の私の回答通りに作成し、 H2セルに↓を入れてください(ANo.2でG2セル用に回答した式と同じです)。 =INDEX(A:A,MATCH(SMALL(I:I,ROW(G1)),I:I,0))
お礼
mt2015さま いつも親身に教えてくださり本当にありがとうございます。 教えて頂いた内容を参考させていただきました。 ありがとうございます。
- mt2015
- ベストアンサー率49% (258/524)
RANK関数を使っていませんが…… 同じ順位の時の並びは登場順で良いですか? I列を作業列として使います。 I2に以下の式を入れ下にコピーします(これを裏の順位として名前を特定します) =IF(C2="","",C2+ROW()/1000) E2セルの式は↓ =SMALL(C:C,ROW(E1)) F2セルの式は↓ =SMALL($B$2:$B$300,E2) G2セルの式は↓ =INDEX(A:A,MATCH(SMALL(I:I,ROW(G1)),I:I,0)) E2:G2を下方向にコピーして下さい
- Nobu-W
- ベストアンサー率39% (725/1832)
お礼
bunjiiさま 非常にわかりやすい説明を頂きましてありがとうございます。 また、こんなに長い式を書いてくださり本当にありがとうございました。 お陰様で完ぺきに私がしたかったことができました! 素晴らしい、本当に素晴らしい式を教えてくださり本当にありがとうございました! 今後ともなにとぞよろしくお願いいたします! めぐみ