・同順位があっても、次の順位をスキップせず、連番で順位を求める方法
・RANK、COUNTIF、IF関数の組み合わせ
練習用サンプルデータ(ダウンロード)
※シートは練習用と成果物(解答)の2種類あります。閲覧したい方はダウンロードして下さい。
試験の点数の順位や、販売件数の順位を調べたい時は、RANK関数が便利です。
ただ、同順位がいても、順位を飛ばさずに、連番で順位を付けたい時もあります。そういった時は、1発で求めようとせず、同順位がいない表を作り、それをベースに順位を求めると計算できます。
(練習で実施する「同順位を飛ばさずに連番で順位を求める」の完成図)
※beforeの状態を、afterの状態まで仕上げる過程を説明します。
練習サンプルデータは、ダウンロードファイルのシート「練習用」となります。

‘【1】RANK、COUNTIF、IF関数の公式
‘(1)RANK関数の公式
●数値の順位を調べる関数
公式
セル番地=RANK(数値,範囲,順序)
数値:調べる数値
範囲:数値の入っているデータ範囲を指定
順序:降順(数値が大きい→小さい)にする場合は、省略する(入力なし)
昇順(数値が小さい→大きい)にする場合は、「1」を入力し指定する
‘(2)COUNTIF関数の公式
●条件に合うデータの件数を求める関数
公式
セル番地=COUNTIF(範囲,検索条件)
※「検索条件」に合うデータを「範囲」から探し、データの個数を求める
‘(3)IF関数の公式
●「もしも~だったら」というような条件から複数の結果をはじき出してくれる関数
公式
セル番地=IF(論理式,値が真の場合,値が偽の場合)
※「論理式」に指定した条件と一致するならば、「値が真の場合」の処理を行い、条件と一致しないならば、「値が偽の場合」の処理を実行する。
【2】RANK、COUNTIF、IF関数の使い方
例題を実際に解きながら解説します。
‘(1)例題1の販売件数の大きい順番に順位を付ける問題
を解いていきます。
※ここでポイントは、同順位の数値を外した順位表をまず作成することです。
まずは、枠外のE列に、以下の数式を作成します。
(以下)
・B列の先頭「B4」から、1つずつ下に順番に、範囲を伸ばし、重複するなら、「重複」と表示。重複しない場合は、順位を計算する数式を作成します。
‘①まず、セルE4を選択し、数式「=IF(COUNTIF($B$4:B4,B4)=1,B4,”重複”)」と入力します。すると、70と表示されます。

‘②他のセルにも同様に計算する為、セルE4をコピーし、E5からE12を範囲指定して貼付けます。

(数式解説)
1)セルE4に数式を入力すると、論理式の条件に一致する為、セルB4の70の値が表示。

・B4は$を付けている為、コピーして1つ下のセルに貼付けても、範囲指定の
先頭セルB4だけは固定されて動きません(絶対参照)。
・それ以外のセルは、コピーを1つ下に張り付けた際に、B4からB5に変更
されます。(相対参照)
2)実際に、セルE4をコピーして、E5に張り付けると、やはり、範囲指定の先頭セルB4は変わっていません。セルの値は、論理式の条件に一致する為、セルB5の62の値が表示。

3)セルE4をコピーして、E6に張り付けると、論理式の条件に一致する為、セルB6の58の値が表示。

4)セルE4をコピーして、E7に張り付けると、論理式の条件に一致しない為、「重複」と表示される。B7の値58は、すでに、B6に同じ58の値があるため、重複しています。

・B7の値58は、B4からB7の範囲に2個存在します。
・COUNTIF(条件式)=1とならない為、論理式に一致しない場合の値「重複」が表示されます。
以降のE8からE12まで、この同様の考え方で計算されています。
これで、E列に、1位からの連番順位で表示され、同順位が下の行に見つかった場合は、重複と表示されていることがわかります。
このE列のデータを使って、RANK関数で、順位をB列に表示しましょう。
‘③セルC4を選択し、数式「=RANK(B4,$E$4:$E$12)」を入力します。すると、1と表示されました。

‘④他のセルも同様の計算ですので、セルC4をコピーし、C5からC12を範囲指定し貼り付けます。すると、順位が計算されて表示されます。

(④の数式の解説)

RANL関数の順位(昇順・降順)の方法は、以下で紹介していますので、合わせてお読みください。
【3】まとめ
・同順位があっても、次を飛ばさず、連番となるように順位付けするには、一旦、同順位となる数字を除外した表を作成します。そのデータを元にRANK関数を使って順位計算をしましょう。絶対参照の使い方がキーになりますので、理解しておくことをお勧めします。






