Excel RANK関数で同順位を発生させずに順位表を作成する方法
RANK関数で順位を付ける際に同一数値があれば順位が重複しないように
別の順位を付ける数式を紹介します。
手順
重複無しの順位を設定
RANK.EQ関数とCOUNTIF関数を利用した数式を設定して下にコピーします。
=RANK.EQ(数値セル,$指定の数値範囲,0)+COUNTIF($指定の数値セル:数値セル, 数値セル)-1
下の例ではこのようになります。
=RANK.EQ(B4,$B$4:$B$13,0)+COUNTIF($B$4:B4,B4)-1
B列が順位を付ける得点、C列がRANK.EQ関数そのままの重複あり順位
D列が重複なしの順位です。
同一順位がある場合、空きを作るRANK.EQ関数に
COUNTIF関数で同一数値の件数を数え自身を除いた件数(-1)を足しています。
範囲は先頭行を$で固定し、末尾行は固定しません。
これにより上の行にいるほど順位が上がります。
(Cさん=2位、Eさん=3位、Gさん=4位)
名前などで順位を並べたい場合は、先に並び替えておく必要があります。
LET関数による数式改善
そこまで複雑な数式ではないですがLET関数の適用効果が一応あり
サンプルとして好例なので紹介します。
=RANK.EQ(B4,$B$4:$B$13,0)+COUNTIF($B$4:B4,B4)-1
↑元の数式。↓LET関数で置き換えた数式。
=LET( 対象セル,B4, ランク付け始点セル,$B$4, ランク付け範囲,ランク付け始点セル:$B$13, RANK.EQ(対象セル,ランク付け範囲,0)+COUNTIF(ランク付け始点セル:対象セル,対象セル)-1 )
このレベルの数式だと逆にややこしくなるデメリットもあるため、
数式に適宜意味のあるを付けられる&セル参照を変える際に手間が少ないメリットとを
天秤にかけて、どちらを重視するか判断する必要があります。
VLOOKUP関数で順位表を作成
これにより順位キーにVLOOKUP関数を使い順位表を作ることが可能です。
(XLOOKUP関数でも可能です)
重複がある場合、順位に空きが発生するため#N/Aエラーが発生してしまいますが、
重複なしの場合、空きが発生しないためエラーなしに取得することが可能です。
ただし対象の人数が全て順位表にない場合は
同一得点であっても途切れてしまう場合があります。
よって先に切れてしまう最初の人が同一得点でないか確認した上で
順位表に追加するかを検討する必要があります。
Excel完全マスター: 関数・テクニック・新機能を網羅した決定版ガイド
本書は、Excelの基礎から応用まで、包括的に学べるガイドブックです。当サイトの豊富な情報を、電子書籍向けに最適化し、読みやすく再構成しました。
【本書の特徴】
- 情報量:Word-A4サイズ換算で1,400ページ相当
- 基本操作から高度なテクニックまで、段階的に学習可能
- 140種類の関数を詳細に解説
- 109種類の実用的なテクニックと具体例を紹介
- 最新機能(XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピル等)を徹底解説
【対象読者】
- Excel初心者からプロフェッショナルまで
- 体系的にExcelスキルを向上させたい方
- 業務効率化を目指すビジネスパーソン
- データ分析や可視化のスキルを磨きたい方
【本書の強み】
- 実務に即した例題と解説
- 視覚的な図表やスクリーンショットで理解を促進
- 最新のExcelバージョンに対応した内容
- 著者の長年の経験に基づく、実践的なTipsを多数収録
【更新とサポート】
- 常に最新の情報を反映するため、定期的に内容を更新
- 最新版の入手方法:Amazonカスタマーサポートへお問い合わせください
【入手方法】
- 買い切り:950円
- Kindle Unlimited:読み放題プランで利用可能
Excelマスターを目指す方、業務効率を劇的に向上させたい方に、自信を持っておすすめできる一冊です。この1冊で、Excelの可能性を最大限に引き出す力が身につきます。