Excelで順位を出したいのに、同じ点数の人がいると「何位にすればいいんだろう?」と迷うことはありませんか。RANK.EQ関数だと同順位の全員に最上位の順位が付きますが、評価の公平さを考えると平均順位のほうが適切な場面もありますよね。
そんなときに使いたいのがRANK.AVG関数です。この記事では、ExcelのRANK.AVG関数の書き方から実践的な使い方、エラー対処法まで初心者向けにわかりやすく解説します。
ExcelのRANK.AVG関数とは?
RANK.AVG関数は、指定した数値がデータの中で何番目に位置するかを返す関数です。読み方は「ランク・アベレージ」で、AVGは「Average(平均)」の略です。
この関数の最大の特徴は、同じ値が複数あるとき、それぞれに平均順位を返すことです。たとえば2位と3位に同じ値が並んでいれば、どちらにも「2.5」と返してくれます。
RANK.AVG関数はExcel 2010で導入されました。それ以前から使われていたRANK関数の後継として、RANK.EQ関数とともに追加された関数です。
RANK.AVG関数の書き方(構文と引数)
基本構文
=RANK.AVG(数値, 参照, [順序])
角カッコ内の引数は省略できます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 数値 | 必須 | 順位を調べたい数値、またはセル参照 |
| 参照 | 必須 | 順位を比較するデータ範囲(数値以外のセルは無視されます) |
| 順序 | 任意 | 0または省略で降順(大きい順)、0以外の数値で昇順(小さい順) |
「順序」を省略すると降順になります。テストの点数のように「大きいほど上位」にしたいときはそのまま省略すればOKです。逆にタイムや費用のように「小さいほど上位」にしたい場合は「1」を指定してください。
RANK.AVG関数の基本的な使い方
実際のデータを使って、RANK.AVG関数の動きを見てみましょう。
次のようなテストの点数データがあるとします。
| セル | 名前 | 点数 |
|---|---|---|
| A2:B2 | 佐藤 | 85 |
| A3:B3 | 田中 | 92 |
| A4:B4 | 鈴木 | 78 |
| A5:B5 | 高橋 | 85 |
| A6:B6 | 伊藤 | 95 |
| A7:B7 | 渡辺 | 72 |
佐藤さんの順位を出すには、C2セルに次のように入力します。
=RANK.AVG(B2,$B$2:$B$7)
結果は「3.5」です。降順で考えると、95が1位、92が2位で、85は3位と4位にあたります。同じ85が2人いるので、(3+4)/2=3.5 という平均順位が返るわけですね。
ほかの人の順位もまとめると、次のとおりです。
| 名前 | 点数 | RANK.AVG(降順) |
|---|---|---|
| 伊藤 | 95 | 1 |
| 田中 | 92 | 2 |
| 佐藤 | 85 | 3.5 |
| 高橋 | 85 | 3.5 |
| 鈴木 | 78 | 5 |
| 渡辺 | 72 | 6 |
参照範囲を絶対参照($B$2:$B$7)にしておくと、数式を下のセルにコピーしても範囲がズレません。順位を一括で出すときの定番テクニックなので、覚えておくと便利ですよ。
昇順で順位を出す場合
タイムや費用のように「小さい値が上位」になるデータでは、第3引数に1を指定します。
=RANK.AVG(B2,$B$2:$B$7,1)
先ほどのデータで昇順にすると、72が1位、78が2位、85が3.5位…というように結果が逆転します。
RANK.AVG関数の実践的な使い方・応用例
応用1: RANK.AVGの結果を整数に丸める
RANK.AVG関数は同順位のとき小数を返しますが、「3.5位」のような表記を避けたい場合もありますよね。そんなときはROUNDUP関数(切り上げ)やINT関数(切り捨て)と組み合わせましょう。
=ROUNDUP(RANK.AVG(B2,$B$2:$B$7),0)
この数式では、3.5が4に切り上げられます。評価基準に応じて使い分けてみてください。
応用2: 上位N%に入るかを判定する
RANK.AVG関数とCOUNT関数を組み合わせると、データ全体の中で上位何%に位置するかを計算できます。
=RANK.AVG(B2,$B$2:$B$7)/COUNT($B$2:$B$7)*100
たとえば6人中3.5位なら、3.5/6*100で約58.3%です。「上位30%以内」のようなフィルタリングに活用できますよ。
順位の百分率をもっと手軽に求めたい方は、PERCENTRANK関数もあわせてチェックしてみてください。
よくあるエラーと対処法
RANK.AVG関数で遭遇しやすいエラーは主に2つです。
#N/A エラー
「数値」に指定した値が「参照」の範囲内に存在しないときに発生します。
よくある原因と対策:
- 参照範囲がズレている → 絶対参照($マーク)を使っているか確認しましょう
- 数式を入れたセル自体を参照範囲に含めてしまっている → データ範囲だけを指定してください
- 数値のセルが空白 → 空白セルを数値引数に指定すると参照内に一致する値がないためエラーになります
#VALUE! エラー
「数値」引数に文字列を渡すと発生します。数値のように見える文字列(たとえばCSVから取り込んだデータ)が原因になることがあるので、VALUE関数(文字列を数値に変換する関数)で変換してから渡すと解消できますよ。
=RANK.AVG(VALUE(B2),$B$2:$B$7)
RANK.EQやRANK関数との違い・使い分け
Excelには順位を求める関数が3つあります。それぞれの違いを表で確認しましょう。
| 関数名 | 同順位の扱い | 導入バージョン | 備考 |
|---|---|---|---|
| RANK.AVG | 平均順位を返す(2.5位) | Excel 2010〜 | 統計的に公平(この記事) |
| RANK.EQ | 最上位の順位を返す(2位) | Excel 2010〜 | 一般的な用途向け |
| RANK | RANK.EQと同じ動作 | 旧バージョン | 互換性のために残存 |
使い分けの目安:
- RANK.AVG: 審査やスポーツ採点など、同点を公平に扱いたいとき
- RANK.EQ: 売上ランキングや成績表など、「同率2位」と表示したいとき
- RANK: 新規で使う理由はほぼありません。既存シートの互換性維持のみ
順位ではなく「N番目に大きい/小さい値そのもの」を取り出したい場合は、LARGE関数やSMALL関数が便利です。あわせてチェックしてみてください。
まとめ
ExcelのRANK.AVG関数のポイントをおさらいしましょう。
- 構文: =RANK.AVG(数値, 参照, [順序])
- 特徴: 同じ値が複数あるとき、平均順位を返す
- 降順/昇順: 第3引数を省略で降順、0以外で昇順
- 使いどころ: 審査・採点・統計分析など公平な順位付けが必要な場面
日常の業務では「同率2位」で十分なケースも多いですが、統計的な分析や公正な評価が求められるシーンでは、RANK.AVG関数の出番です。ぜひ使い方を覚えて、データ分析に役立ててくださいね。
