業務で使える順位付けスキル
「売上トップ10を自動で抜き出したい」
「チームメンバーの成績を順位付きで表示したい」並べ替えやフィルタを使わずに“順位”を一発で求められるのが RANK 関数(Google スプレッドシートでは
RANK.EQ
とRANK.AVG
)。
本記事では 実データ+数式+出力結果 を示しながら、
RANK の基本/同順位処理/動的ランキング までを解説。
さらに SORT 関数やピボットテーブルとの使い分けメリット・デメリット も整理しました。
1. RANK 関数ファミリー
関数 | 形式 | 重複値の扱い |
---|---|---|
RANK.EQ | =RANK.EQ(数値, 参照範囲, [順序]) | 同値は“同順位”で次順位が飛ぶ (1位,1位,3位…) |
RANK.AVG | =RANK.AVG(数値, 参照範囲, [順序]) | 同値は平均順位を返す (1.5位,1.5位,3位…) |
順序引数
0
または省略 → 降順(大きい数値が 1 位)1
→ 昇順(小さい数値が 1 位)
2. 基本例:売上ランキング
A列: 担当 | B列: 売上(円) |
---|---|
佐藤 | 1,200,000 |
鈴木 | 950,000 |
田中 | 1,350,000 |
■ B2 に対する順位(C2 セルに入力して下へコピー)
=RANK.EQ(B2, $B$2:$B$4, 0)
担当 | 売上 | 順位 |
---|---|---|
佐藤 | 1,200,000 | 2 |
鈴木 | 950,000 | 3 |
田中 | 1,350,000 | 1 |
ポイント
- 範囲を 絶対参照(
$B$2:$B$4
)で固定- データ追加時は範囲を十分に広げる or
ARRAYFORMULA
で動的対応
3. 同順位が出る場合:EQ と AVG の違い
スコア | RANK.EQ | RANK.AVG |
---|---|---|
90 | 1 | 1.5 |
90 | 1 | 1.5 |
80 | 3 | 3 |
選び方
- EQ: 表彰・トップ N 抽出など“飛び級”が欲しいとき
- AVG: 平均順位まで含めた統計処理や KPI 可視化
4. 応用例①:動的ランキング表(ARRAYFORMULA)
=ARRAYFORMULA( RANK.EQ( B2:B, B2:B, 0 ) )
- B 列にデータを追加するだけで C 列の順位が自動拡張。
- 別シートにリンクしたダッシュボードでもリアルタイム更新。
5. 応用例②:部門別 × 月別で順位付け(FILTER+RANK)
=ARRAYFORMULA(
IF( 部門列="営業",
RANK.EQ( 売上列 , FILTER(売上列 , 部門列="営業"), 0 ),
"" )
)
営業部だけで相対順位を計算し、他部門は空白。
クロス集計前の前処理に便利。
6. SORT 関数を使わず RANK で順位列を作るメリット・デメリット
観点 | RANK 関数 | SORT 関数 |
---|---|---|
データ保持 | 元表の行順を変えず “順位列” を追加できる | 並べ替え後は行順が変わる(元との対応が分かりづらい) |
VLOOKUP/INDEX 連携 | 順位列をキーに別表へ照合しやすい | 並べ替え毎に行位置が変動、参照がズレやすい |
同順位処理 | RANK.AVG で平均順位、EQ で飛び級が選べる | 同順位の場合は行順が先か後かに依存 |
Top N 可視化 | 条件付き書式で「順位<=10」などで強調可 | SORTN +行抽出で Top N 表を別に作る |
ユーザー視認性 | 順位列を見れば 1 位がどこか一目瞭然 | 並べ替え表でないと“何位なのか”が不明 |
更新コスト | データ増で計算量アップ → 大量行だとやや重い | レンジ全体を毎回並べ替え、こちらも重いが単一操作 |
一時的な並べ替え | 式編集が必要 | 列▲▼クリックで瞬時 |
要点
- レポートや KPI 表に順位列を持たせたい ➜ RANK が最適
- テーブル全体を並べ替えて表示したい ➜ SORT / フィルタビュー
7. 業務活用シーン
シーン | 使い方例 | 効果 |
---|---|---|
営業:売上ランキング | RANK.EQ で社内順位、条件付き書式で上位3名着色 | モチベーション可視化 |
マーケ:CVR順位 | RANK.AVG(CVR列, CVR列, 0) | 同率施策の平均順位で公平評価 |
人事:勤怠評価 | RANK.EQ(残業時間列, 残業時間列, 1) | 残業時間“少ない順” で 1 位がホワイト勤務 |
財務:支出科目 Top10 | RANK.EQ(金額列, 金額列, 0) <=10 を FILTER | 大口経費を即抽出 |
在庫:発注優先度 | 在庫量 ASC 順位を求めて低い順に発注 | 欠品リスクを数値化 |
8. よくあるエラー & 回避策
症状 / エラー | 原因 | 対処 |
---|---|---|
#N/A | 参照範囲に空白・文字列 | IFERROR() でガード、範囲を数値列だけに |
順位が飛ばない/平均にならない | 間違えて EQ / AVG を使い分けていない | 用途に合わせて関数を選定 |
データ増で計算遅延 | ARRAYFORMULA+数万行 | 必要範囲だけに制限 or QUERY で集計後に RANK |
9. まとめ & 早見表
目的 | 代表式 | キーワード |
---|---|---|
基本降順順位 | =RANK.EQ(B2,$B$2:$B$100,0) | 売上順位 |
昇順(小が1位) | =RANK.EQ(C2,$C$2:$C$100,1) | 残業少→多 |
同値平均順位 | =RANK.AVG(D2,$D$2:$D$100,0) | 統計用 |
動的トップ10強調 | =ARRAYFORMULA(RANK.EQ(B2:B,B2:B,0)) + 条件付き書式 | リアルタイムランキング |
RANK 関数で“順位”をセルに可視化!
SORT だけでは分からない「今 何位か」を一目で示し、
条件付き書式・FILTER・QUERY と組み合わせれば
ダッシュボードや KPI 共有がグッと分かりやすくなります。