スプレッドシートのRANK.AVG関数の使い方|同順位を平均で処理する方法

スポンサーリンク

「スプレッドシートで順位を付けたいけど、同じ点数の人が複数いるときにどう処理すればいいんだろう」。そんな悩みを感じたことはありませんか?

RANK関数だと同順位の場合に上位の順位がそのまま返されるので、順位が飛んでしまいます。アンケートや成績表で「公平に順位を出したい」ときには困りますよね。

RANK.AVG関数を使えば、同順位の値に平均順位を割り当てられます。この記事では基本の書き方からRANK・RANK.EQとの違い、実務での活用例まで丁寧に解説します。

RANK.AVG関数とは?同順位を平均で返す関数

RANK.AVG関数は、指定した値がデータの中で何番目かを返す関数です。読み方は「ランク アベレージ」で、AVGはAverage(平均)の略です。

通常のRANK関数との違いは、同じ値が複数あるときの処理方法にあります。

  • RANK / RANK.EQ: 同順位の場合、最上位の順位を返す
  • RANK.AVG: 同順位の場合、順位の平均を返す

たとえば2位・3位・4位の3人が同じ点数だったとします。RANK関数は3人とも「2位」を返します。一方、RANK.AVG関数は (2+3+4)/3 = 3位 を返します。

統計分析やアンケート集計など、公平な順位付けが必要な場面で活躍する関数です。

RANK.AVG関数の書き方(構文と引数)

基本構文

=RANK.AVG(値, 範囲, [順序])

引数の説明

引数必須/任意説明
必須順位を調べたいセル
範囲必須順位を比較するデータ範囲
順序任意0=降順(大きい順)、1=昇順(小さい順)。省略すると0(降順)

構文はRANK関数やRANK.EQ関数とまったく同じです。違いは同順位の処理方法だけなので、既にRANK関数を使っている方はそのまま置き換えられます。

基本的な使い方

以下の売上データでRANK.AVG関数を使ってみましょう。

 A列(担当者)B列(売上)C列(順位)
2行目田中85=RANK.AVG(B2,$B$2:$B$8)
3行目鈴木92 
4行目佐藤78 
5行目山田95 
6行目高橋88 
7行目伊藤72 
8行目渡辺85 

C2セルに =RANK.AVG(B2,$B$2:$B$8) と入力します。

範囲を絶対参照($B$2:$B$8)にするのがポイントです。数式を下にコピーしても範囲がずれません。

結果は以下のようになります。

担当者売上順位
田中854.5
鈴木922
佐藤786
山田951
高橋883
伊藤727
渡辺854.5

田中と渡辺はどちらも売上85で同じです。通常のRANK関数なら「4位」と「4位」になり、5位が飛びます。RANK.AVG関数では (4+5)/2 = 4.5位 が返されます。

降順と昇順の切り替え

第3引数で順位の方向を変えられます。

=RANK.AVG(B2,$B$2:$B$8, 0)   → 降順(大きい値が1位)
=RANK.AVG(B2,$B$2:$B$8, 1)   → 昇順(小さい値が1位)
担当者売上降順(0)昇順(1)
田中854.53.5
鈴木9226
山田9517
伊藤7271

売上ランキングなら降順(0)、コスト順位なら昇順(1)が自然です。用途に応じて使い分けてください。

RANK・RANK.EQ・RANK.AVGの違い

RANK系の3つの関数は構文が同じで、同順位の処理方法だけが異なります。比較表で整理しましょう。

3関数の基本比較

項目RANKRANK.EQRANK.AVG
読み方ランクランク イコールランク アベレージ
構文=RANK(値, 範囲, [順序])=RANK.EQ(値, 範囲, [順序])=RANK.AVG(値, 範囲, [順序])
同順位の処理最上位を返す最上位を返す平均を返す
位置づけ互換性関数RANKの後継RANKの後継

RANKとRANK.EQは動作が同じです。RANKは互換性のために残されている関数で、新しく書くならRANK.EQまたはRANK.AVGを使うのがおすすめです。

同順位の処理方法の違い(具体例)

データ「100, 80, 80, 80, 50」の順位を3関数で比較します。

データRANK / RANK.EQRANK.AVG
10011
8023
8023
8023
5055

RANK / RANK.EQは「80」に最上位の2位を返します。3位・4位がスキップされて次は5位です。

RANK.AVGは「80」に (2+3+4)/3 = 3位を返します。順位の合計が保たれるため、統計的に公平な順位付けになります。

どの関数を使うべきか?

用途おすすめの関数
売上ランキング・成績表RANK関数 または RANK.EQ
統計分析・アンケート集計RANK.AVG
Excelとの互換性が必要RANK.EQ

NOTE

スプレッドシートでは RANK と RANK.EQ は完全に同じ動作をします。どちらを使っても結果は変わりません。

実践的な使い方・応用例

アンケートの評価スコアに公平な順位を付ける

社員満足度アンケートのスコアに順位を付ける例です。同じスコアの部署には公平な平均順位を割り当てます。

部署スコア順位(RANK.AVG)
営業部4.2=RANK.AVG(B2,$B$2:$B$6) → 2
経理部3.8→ 4.5
人事部4.5→ 1
開発部3.8→ 4.5
総務部4.0→ 3

経理部と開発部はどちらもスコア3.8で同じです。RANK.AVGなら (4+5)/2 = 4.5位となり、どちらかを優遇することなく公平に順位が付きます。

RANK.AVGの結果を整数にしたい場合

RANK.AVGは小数の順位を返すことがあります。整数で表示したい場合は、ROUND関数と組み合わせます。

=ROUND(RANK.AVG(B2,$B$2:$B$8), 0)

ただし四捨五入すると、同じ整数の順位が複数できる可能性があります。あくまで「見た目の調整」として使ってください。

日付データに順位を付ける

日付は内部的に数値として扱われるため、RANK.AVG関数でも順位を付けられます。

タスク納期優先順位
企画書3/25=RANK.AVG(B2,$B$2:$B$5,1) → 1
報告書4/10→ 3
見積書3/28→ 2
資料4/15→ 4

昇順(1)を指定すれば、早い日付ほど小さい順位になります。納期の優先度を自動で付けたいときに便利です。

よくあるエラーと対処法

#N/Aエラー

「値」が「範囲」に含まれていない場合に発生します。

よくある原因と対策:

原因対策
値のセルが範囲外範囲を正しく指定し直す
値が文字列型の数字VALUE関数で数値に変換する
範囲にテキストが混在数値だけの範囲を指定する

特に注意したいのが「文字列型の数字」です。見た目は数字でも、文字列として入力されている場合があります。=VALUE(A1) で数値に変換してからRANK.AVGに渡すと解決します。

TIP

セルを選択して左揃えになっている数字は文字列型の可能性があります。数値は右揃えが初期設定です。

まとめ

RANK.AVG関数は、同順位の値に平均順位を割り当てる関数です。統計的に公平な順位付けが必要な場面で活躍します。

この記事のポイント

  • 構文は =RANK.AVG(値, 範囲, [順序]) の3引数
  • 同順位がある場合、順位の平均を返す(例: 2位と3位 → 2.5位)
  • RANK / RANK.EQ は同順位に最上位を返す(違いはここだけ)
  • 第3引数: 0(省略可)=降順、1=昇順
  • 範囲は絶対参照($)で固定するのを忘れずに
  • アンケート集計・統計分析など公平性が求められる場面に最適

次のステップ:関連する順位関数

RANK.AVG関数の使い方がわかったら、以下の関数もあわせて覚えてみてください。順位付けのバリエーションが広がりますよ。

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