スプレッドシートのRANK関数で範囲内の順位を表示

RANK関数の使い方

特定の値やセルに含まれる数値が指定したデータ範囲内で何番目なのか知りたいと思うことはあると思います。そんな時に便利なRANK関数について解説します。

RANK関数の使い方

RANK関数はデータセット内の特定の値の順位を返す関数です。指定した値が、指定した範囲の中で、上から(下から)何番目に当たるのかの順位(ランキング)を返してくれます。

構文は下記のようになります。

=RANK(値, データ, [降順or昇順(省略可)])

順位を特定する値データ検証するデータセットを含む配列または範囲、最後の降順か昇順かの指定は省略可能で、デフォルトは『0』で最大値が1番目(降順)になり、『1』にすると最小値が1番目(昇順)になります。

範囲内に値が入っていない場合は『#N/A』となり、エラー表示されます。

RANK関数のポイント
  • 指定した値が、指定した範囲の中で、何番目なのかを返す
  • 『値』と『データ範囲』と『降順か昇順』かを指定する
  • 順番は省略可能でデフォルトは降順
  • 範囲内に値以外のものが入っているとエラーになる
  • ARRAYFORMULA関数と組み合わせるのが効率が良い

rank関数でランキングをつけてみる

例として国語、算数、英語のテストの合計点に順位をつけてみましょう。G列に順位が入ります。

RANK関数で順位を表示

単純にG列でrank関数を用いる場合は、最初の値で、合計点のセル『F3』を指定し、次の範囲ではランキングに反映される全員の合計点である『F3:F9』を指定します。今回は点数が高い順(降順)なので最後の指定は省略します。次の生徒からは最初の値のみ『F4』、『F5』と変えていきます。

=rank(F3,F3:F9)

これで順位が表示されました。

加藤さんと浜本さんは同じ259点なので同順位の2位となり、次は4位になっているのが確認できると思います。見るからに順位がおかしい場合はそれぞれの関数で指定している範囲がズレてる可能性が高いです。

求めた結果は達成できましたが、毎回人数分の関数を入力するのは効率が良くありません。

人によっては『G3』のセルの関数を『=rank(F3,F$3:F$9)』のように参照範囲を固定して、オートフィルで済ますという人もいるかもしれませんが、それでも母数が多ければ長いスクロールをしなければなりませんし、関数を使いすぎる事でスプレッドシートが重くなる原因となります。

RANK関数はARRAYFORMULA関数と組み合わせよう

ランキングをつける対象が少数の時は気にならないかもしれませんが、これが100件、1000件と増えるに当たって、作業効率や負荷が大幅に変わってきます。ここはスマートにARRAYFORMULA関数を組み合わせて、よりシンプルかつ効率のよい記述に変えましょう。

rank関数にarrayformula関数を組み合わせてシンプルにする

『G3』のセルに下記のように入力するだけで同じ結果が表示されます。

=ArrayFormula(rank(F3:F9,F3:F9))

ARRATFORMULA関数については別の記事で詳しく解説しています。

ARRAYFORMULA関数の使い方
スプレッドシートのARRAYFORMULA関数で処理を効率化
スプレッドシートで同じ関数や数式を複数のセルで繰り返すときに便利なARRAYFORMULA関数について解説します。

まとめ

順位を表示するrank関数について解説してきました。ARRAYFORMULA関数を組み合わせることでシンプルにする方法についても解説しましたが、関数を使用する時は数が増えたときのことを想定して、いかに効率よく、負荷がかからないようにするかも考えたいですね。

スプレッドシートの関数の基本的なものを紹介しています。

便利な数式と関数
スプレッドシートで最初に覚えたい便利な基本関数一覧
スプレッドシートで最初に覚えると便利な使い勝手のいい基本的な関数を紹介します。

スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。

スプレッドシートの使い方完全マニュアル
スプレッドシートの使い方 完全マニュアル
スプレッドシート初心者が一通り使えるようになるまでの知識を体系的にまとめました。