私はRANK関数で出した順位に、COUNTIF関数で表示補正を設定し、VLOOKUP関数で一覧表示しいてます。
A~E列を記録欄、F~I列を表示欄とします。シート間でも応用できます。
A B C D E F G H I
1 並順 補正 名前 得点 順位 並順 順位 名前 得点
2 5 0 相川 50 5 1 1 尾崎 90
3 4 0 井上 60 4 2 2 内田 70
4 2 0 内田 70 2 3 2 江藤 70
5 3 1 江藤 70 2 4 4 井上 60
6 1 0 尾崎 90 1 5 5 相川 50
記録欄
A列はE列:順位とB列:補正値を足した並び順になります。【 例A2:=E2+B2 】
「内田」と「江藤」は同点2位(3位無し)ですが、並び順はそれぞれ、2番目3番目となります。
B列は該当の「得点」と同じものが表のD列上方(下方は無視)に何個あるか検索します。
COUNTIF関数を使います【 例B2:=countif(D$2:D2,D2)-1 】-1は検索条件自身を除外するため。
ここでは「内田」の上方には70点はいませんが、「江藤」の上方には「内田」の70点が1個あります。
C列は、名前欄。D列は得点欄です。
E列は RANK関数【 例E2:=rank(D2,D$2:D$6) 】で処理(※D$6:得点欄の最後のセル)
表示欄
F列は表示したい番号を指定(順位ではありません)。
G列~I列は VLOOKUP関数を使った記録欄の抽出です。
【 例G2:=VLOOKUP(F2,$A$2:$E$6,5,FALSE) 】(順位:指定範囲5列目)
【 例H2:=VLOOKUP(F2,$A$2:$E$6,3,FALSE) 】(名前:指定範囲3列目)
【 例I2:=VLOOKUP(F2,$A$2:$E$6,4,FALSE) 】(得点:指定範囲4列目)
(※$E$6:記録欄の最後のセル)
D列の得点が変更になり、順位が変動するとG~I列の表が並び替えられます。
表示欄を別シートに作る場合は、VLOOKUP関数の範囲領域にシート名も指定します。
お礼
ありがとうございます! 参考になりました。教えていただきました関数で 順位表を作成してみます。