エクセルで順位をつける方法|RANK関数の使い方と、同点・小さい順・グループ別の順位

記事
ビジネス・マーケティング
売上や点数に順位をつけたいときは、RANK関数を使います。大きい順なら、順位を出したいセルの横に次の式を入れて、下へコピーするだけです。

■ 基本の書き方(売上がC2からC11にあるとき)
=RANK(C2,$C$2:$C$11,0)
意味は「C2は、C2〜C11の中で何番目か」です。最後の数字は、0が大きい順(売上・点数)、1が小さい順(タイム・費用)です。省略すると0になります。
小さい順にしたいときは、次の式です。
=RANK(C2,$C$2:$C$11,1)

■ 全部1位になる・順位がずれる
いちばん多い原因は、範囲に「$」を付け忘れたことです。下へコピーすると範囲もずれてしまい、順位が合わなくなります。範囲を選んでF4キーを押すと、$が付きます。

■ 同点のとき
同点は同じ順位になり、次の順位が飛びます。たとえば300が2人いると、どちらも3位で、次は5位になります(4位は無し)。これはRANKの仕様どおりです。
・飛ばしたくないとき(同点は同じ順位、次はそのまま次の数字)
=SUMPRODUCT(($C$2:$C$11>C2)/COUNTIF($C$2:$C$11,$C$2:$C$11))+1
・同点でも別の順位にしたいとき(表の上にいる人を上にする)
=RANK(C2,$C$2:$C$11)+COUNTIF($C$2:C2,C2)-1

■ グループ別(部署・店舗ごと)に順位をつける
A列に東・西のようなグループ、C列に売上があるとき、グループの中だけで順位を出します。
=COUNTIFS($B$2:$B$11,B2,$C$2:$C$11,">"&C2)+1
意味は「同じグループの中で、自分より大きい人が何人いるか+1」です。

■ 試した結果(売上10人分)
売上が 300・250・250・400・100・100・500・250・300・50 の10人で試しました。
・RANK(大きい順):500が1位、400が2位、300の2人が3位、250の3人が5位、100の2人が8位、50が10位でした。
・飛ばさない式:500が1位、400が2位、300が3位、250が4位、100が5位、50が6位でした。
・同点を別順位にする式:300の2人が3位と4位、250の3人が5・6・7位、100の2人が8位と9位でした。

■ 順位順に並べ替えたい
順位の列を作ってから、データタブの「並べ替え」で順位の列を小さい順にします。並べ替えたら順位が崩れるときは、順位の列を「値として貼り付け」で固定してから並べ替えます。

■ うまくいかない時
・#N/A が出る:数字が文字として入っていないか確認します(左に寄って表示される数字は文字です)。
・順位が合わない:範囲に見出しや合計の行が入っていないか確認します。

■ 向かない場合
毎月、数千行の売上表で順位を取り直す、複数のシートをまたいで順位をつける、といった表は、式を手で直すより、表の作りから整えたほうが早いことがあります。自分で組み直す時間がないときは、専門の調整を使うのも1つの方法です。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す