Excelでグループ内ランキングを出す方法|RANK IFは存在しないが代替で簡単に解決

COUNTIFS関数で順位を求める

「部署ごとに順位を出したい」「カテゴリごとにランキングしたい」
このような条件付きランキング(グループ内順位)は、実務で非常によく使います。

しかし結論から言うと、Excelに「RANK IF関数」は存在しません。

✔ 結論
グループ内ランキングは次のいずれかで解決できます。

  • COUNTIFSで1発計算(上級者向け)
  • IF+RANK(作業列あり・誰でも理解できる)

RANK IFは存在しない

 

 

【最短で解決】グループ内ランキングの完成形(コピペOK)

例:A列=部署、B列=売上、C列=順位

=COUNTIFS($A$2:$A$100,A2,$B$2:$B$100,">"&B2)+1

この式で「同じ部署内での順位」が求められます。

※売上が大きいほど上位(降順)の場合

 

方法①:COUNTIFSでグループ内順位を出す(1セル完結・上級者向け)

考え方

「同じグループ」かつ「自分より大きい値」を数えることで順位を出します。

=COUNTIFS(グループ範囲,グループセル,数値範囲,">"&対象セル)+1

メリット

  • 1セルで完結する
  • 作業列が不要

デメリット

  • 数式の意味が直感的に分かりにくい
  • 引き継ぎ時に理解されにくい

 

方法②:IF+RANKでグループ内順位を出す(初心者でも安全・おすすめ)

実務ではこちらの方が圧倒的に安全です。

手順①:対象グループだけ抽出(作業列)

=IF(A2="営業部",B2,"")

手順②:RANKで順位付け

=IFERROR(RANK.EQ(C2,$C$2:$C$100,0),"")

※C列が作業列

メリット

  • 何をしているか一目で分かる
  • 誰が見ても理解できる
  • トラブルが起きにくい

デメリット

  • 作業列が必要

 

同順位(重複データ)がある場合の注意点

売上などで同じ値がある場合、順位の付き方に注意が必要です。

  • COUNTIFS方式 → 同順位は同じ順位、次は飛び番(例:1,1,3)
  • RANK関数 → 同様に飛び番になる

これはExcelの仕様です。

もし「1,2,2,3」のように詰めたい場合は、別のロジック(MATCH関数や補助列)が必要になります。

 

RANK / RANK.EQ / RANK.AVGの違い

  • RANK:旧関数(現在も使用可能)
  • RANK.EQ:現在の標準(基本はこちらを使用)
  • RANK.AVG:同順位の平均順位を返す

特に理由がなければ、RANK.EQを使うのがおすすめです。

 

 

どちらを選ぶべきか?【結論】

方式COUNTIFS方式IF+RANK方式
数式1セルで完結作業列あり
分かりやすさ難しい非常に分かりやすい
保守性低い高い
おすすめ個人用ファイル共有ファイル

迷ったらIF+RANK方式を選べばOKです。

 

なぜRANK IFが存在しないのか?

RANK関数は「範囲全体での順位」を前提に設計されています。
そのため「条件付き順位」を実現するには、

  • COUNTIFSで条件を付ける
  • IFで対象を絞る

といった組み合わせで対応する必要があります。

 

まとめ

  • RANK IF関数は存在しない
  • グループ内順位は2つの方法で解決できる
  • 実務では「分かりやすさ=正義」

Excelでは、「自分にしか読めない数式」より「誰でも理解できる構造」が重要です。

特に業務ファイルでは、IF+RANK方式が最も安全で再現性が高い方法です。

著者
古見遊 正

流通業で働きながら、2004年からWindowsを使い続けている80年代生まれのサラリーマン。ExcelとPowerPointを極め、仕事の効率化を追求中。苦手だったWordも克服中!Excelを使いこなせるだけで周囲から『神扱い』されるけれど、そのせいで『システムに詳しい人』だと勘違いされがち。でも、それが新しい知識を得るきっかけになった。そんな経験を活かして、Excel・PowerPoint・Word・Windowsの時短ワザ&仕事術を発信中!

古見遊 正をフォローする
[1]Excel時短ワザ

コメント

タイトルとURLをコピーしました