小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2023年12月4日【ID:0】

【Excel】重複のない順位を割り当てる


指定した範囲での順位を求める関数に、RANK関数またはRANK.EQ関数があります。
ただ、この関数で順位を求めると、以下のように重複した値の場合に同じ順位になってしまいます。

=RANK.EQ(B3,$B$3:$B$12)

この順位から同じ順位をなくし、値が重複した場合は、上のデータを優先して順位を付ける方法について解説していきます。

重複した値が存在する場合、「1,3,6,7,8、9,10」のように一部の順位「2,4,5」が存在しなくなります。
重複した値には同じ順位が表示され、次の順位が飛ばされて表示されることが分かります。

そのため、順位を求める対象の値より上の値に存在する、対象の値と同じ値の数を加えることで、重複のない連番の順位を付けることができます。

一番上のデータに関しては、その値より上に値がないため、同じ値の数が0になります。
そのため、2つ目のデータから、同じ値の数を求めていきます。

指定した値の数を求めるには、COUNTIF関数が使えます。

=COUNTIF(範囲, 検索条件)
// 指定した範囲の中で、検索条件を満たすセルの数を返す

実際に、2、6、8つ目のデータに関して、COUNTIF関数を用いて求めてみます。

=COUNTIF(B3,B4)
=COUNTIF(B3:B7,B8)
=COUNTIF(B3:B9,B10)

2つ目の式に関して、以下のようにも表現することができます。

=COUNTIF(B3:B3,B4)

以下の3つの式を比較すると、範囲の開始セルB3のみ固定で、それ以外が相対的に変化していることが分かります。

=COUNTIF(B3:B3,B4)
=COUNTIF(B3:B7,B8)
=COUNTIF(B3:B9,B10)

そのため、開始セルB3のみを絶対参照にすることで、オートフィルを用いて求めることができます。
実際に、順位にCOUNTIF関数の値を加えた式が以下になります。

=COUNTIF($B$3:B3,B4) + RANK.EQ(B4,$B$3:$B$12)
// 開始セルB3を絶対参照にする

後は、セルC4の数式を一番下までオートフィルでコピーすることで、以下のように重複のない順位を求められます。


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
ExcelVBA学習ロードマップ配布 ExcelVBA学習ロードマップ配布





リンクの共有はこちらから行えます。

  リンクコピー Twitter Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

4021593

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ