Excelで「売上金額」等をレコードごとに順位付けしたいですが、何か良い方法ありますかね?
その場合は、関数の「RANK」を活用すると良いですよ!
では、RANKの使い方について解説していきますね。
はじめに
この記事は関数の概要を把握していることが前提です。
関数の概要については以下の記事をご参照ください。
はじめに この記事は数式の概要を把握していることが前提です。 参考記事 数式の概要の詳細は以下の記事をご参照ください。 関数とは 関数とは、数式の構成要素の1つであり、固有の計算/処理の機能がセットされた数式のことです。 …
数値データをランク付けしたい場合は「RANK」が有効
実務では、売上金額や受注件数等の数値データを順位付け(ランク付け)することがあります。
単純に上位あるいは下位のレコードを特定することが目的の場合もあれば、データ分析の一環で各レコードに順位のフラグを立てて、上位/下位の傾向把握が目的の場合もあります。
こんな場合、関数の「RANK」を使うと良いです。
RANKは「ランク」と読む。
RANKを使うことで、各数値データが全体の何番目か、順位を算出できます。
百分率で順位付けしたい場合は「PERCENTRANK」を使用してください(詳細は以下の記事を参照)。
はじめに この記事は関数の概要をRANKの使い方を把握していることが前提です。 参考記事 関数の概要とRANKの使い方については以下の記事をご参照ください。 数値データを相対的にランク付けしたい場合は「PERCENTRA …
RANKの構文
RANKの構文は以下の通りです。
=RANK(数値,参照,[順序])
順序に従って範囲内の数値を並べ替えたとき、数値が何番目に位置するかを返します。
引数名 | 必須 | データ型 | 説明 |
---|---|---|---|
数値 | ○ | 数値 | 「参照」の範囲内で順位を調べたい単一セル(値が数値)を指定します。 |
参照 | ○ | 参照 | 順位を調べる対象のセル範囲(値が数値)を指定します。 |
順序 | - | 論理 | 順位を昇順(小さい順)と降順(大きい順)のどちらにするか指定します。 ※0:降順、1:昇順 |
引数「順序」を省略した場合、降順で順位付けされる(RANKは降順がデフォルト)。
RANKは同じ順位がある場合、その数だけ下位の順位に欠番が生じる。
※例:1位タイが2つある場合、2位が欠番となり、以降は3位から順位付けされる
引数「数値」が数値以外の値の場合、エラー値「#VALUE!」が表示。
引数「数値」が引数「参照」のセル範囲外にある場合、エラー値「#N/A」が表示。
【参考】RANKは「統計関数」
あくまで参考情報となりますが、RANKは統計関数です。
ただし、リボン「数式」タブの関数ライブラリ上では「その他の関数」の「互換性」に分類されています。
Excel2007以前のバージョン(Excel97-2003ブック(*.xls)含む)と互換性あり。
実際にRANKを活用する際は、以下で解説しているように直接入力で挿入していきましょう。
RANKの使用結果イメージ
RANKを使い、順位付けするイメージは以下の通りです。
今回は「金額」列を対象に順位を算出しました。
上記のように計算列としてRANKを使う場合、1レコードにつき1つの関数を使います。
「計算列」とは、数値/日付/時刻の列の値を計算した新たな列のこと。
ベースの数式をセットしたら、他のセルへペーストしましょう。
なお、今回は引数「参照」は全レコードでF2~F11セルを固定で参照するため、絶対参照にしています(テーブルの場合は不要)。
絶対参照/相対参照の詳細については以下の記事をご参照ください。
関数の数式を直接入力できるようになってきました! もっと関数を実務で役立てていくために、他に覚えておいた方が良いことはありますか?? …
【参考】引数「順序」を昇順にした場合
ちなみに、引数「順序」を「1」にすることで昇順での順位付けを行った場合、次の結果となります。
上記の通り、数値が小さい順に順位付けされます。
コストやミス率等、数値の小さい方が良い結果というデータの場合、昇順で順位付けすると良いでしょう。
RANKの数式の挿入手順
上記の結果を得るための手順は以下の通りです。
- 関数を挿入するセルを選択
※今回はG2セル - 「=rank」等と入力
- サジェストから「RANK」を選択し、「Tab」キーで確定
- 順位を調べたい数値セルを選択
※今回はF2セル - コンマ(,)を入力
- 順位を調べる対象のセル範囲を選択
※今回はF2~F11セル(絶対参照) - 「Enter」キーで確定
- 1行目の数式をコピーし、以降のセルへペースト
※今回はG3~G11セルへペースト
手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑧は不要(全レコードへ数式が自動的にコピーされる)。
【参考】RANKの後継関数は「RANK.EQ」と「RANK.AVG」
RANKの後継の関数として、Excel2010から「RANK.EQ」(ランク・イコール)と「RANK.AVG」(ランク・アベレージ)の2種類の新しい関数が登場しました。
=RANK.EQ(数値,参照,[順序])
順序に従って範囲内の数値を並べ替えたとき、数値が何番目に位置するかを返します。複数の数値が同じ順位にある場合は、その値の中の最上位を返します。
=RANK.AVG(数値,参照,[順序])
順序に従って範囲内の数値を並べ替えたとき、数値が何番目に位置するかを返します。複数の数値が同じ順位にある場合は、順位の平均を返します。
この2つの関数の使い方はRANKと同じです(RANK.EQは戻り値もRANKと同じ)。
RANK.AVGの方は、同じ順位がある場合のみRANK(RANK.EQ)と異なり、平均順位が返ります。
上記の例だと、「金額」列の中で「400」が3レコードあり、順位が7~9位の位置にあるため、その平均の「8」が3レコードの戻り値になっています。
計算式:(7+8+9)÷3=8
同じ順位の扱いを平均にしたい場合はRANK.AVGを使いましょう。
それ以外は互換性のあるRANKを使った方が無難だと思います。
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)
ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)
- 関数を挿入するセルを選択
※今回はG2セル - 「=rank」等と入力
- サジェストから「RANK」を選択し、「Tab」キーで確定
- 順位を調べたい数値セルを選択
※今回はF2セル - コンマ(,)を入力
- 順位を調べる対象のセル範囲を選択
※今回はF2~F11セル(絶対参照) - 「Enter」キーで確定
- 1行目の数式をコピーし、以降のセルへペースト
※今回はG3~G11セルへペースト
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
RANKは数値データを元にした計算列の追加に役立つ関数の一つです。
定期的に順位付けを行う計算列を作成する機会があるなら、ぜひ覚えておいた方が良いですね。
なお、RANK以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。
ご参考になれば幸いですm(_ _)m
RANKとセットで覚えておいた方が良い関数は、上位◯%等、百分率で相対的に順位付けできる「PERCENTRANK」です。
レコード数が多くて実数での順位では上位/下位が分かりにくくなる場合は、RANKよりPERCENTRANKの方がおすすめです。
ぜひ、ケースバイケースで使い分けてくださいね!