
データの順位付けは、グループ内のある値と他の値の関係を表す場合によく使用されます。成績、スポーツ統計、売上高などを順位付けするには、Microsoft Excelの順位付け関数を使用します。これはよく使われる作業であり、Excelの順位付け関数のおかげで簡単に行えます。しかし、順位付けに条件を追加するとなると、ExcelにはRANKIF()関数がないため、頭を悩ませることになるかもしれません。インターネットで解決策を探すと、複雑で扱いにくい式がたくさん見つかります。そこで、Excelのピボットテーブルを使って条件付き、つまりグループ化された順位付けを返す方法をご紹介します。
参照:ソフトウェアインストールポリシー(TechRepublic Premium)
Windows 10 64ビットシステムでMicrosoft 365を使用しています。ExcelのRANK()関数はどのバージョンでも使用できます。RANK.AVG関数とRANK.EQ()関数はExcel 2010 (.xlsx) に追加されました。.xlsx形式と.xls形式の両方のデモファイルを同梱していますが、Excel 2010より前のバージョンではRANK()関数のみ動作します。Web版Excelは3つのランキング関数すべてをサポートしています。
Excel の 3 つのランキング関数に慣れていない場合は、「Excel シートでランキングを計算する方法」を読んでみてください。
Excel の RANK.EQ() 関数とは何ですか?
Excel の RANK.EQ() 関数は、他の数値のリスト内での数値の順位を返します。構文は次のようになります。
RANK.EQ(数値, 参照, [順序])
最初の引数 number は必須であり、ランク付けする値を識別します。ref は必須であり、number と比較する参照の範囲を参照します。order はオプションであり、number をランク付けする方法を識別します。
図Aのシンプルなシートには重複した値があります。この種類のデータでは重複値はおそらく見つからないでしょうが、RANK.EQ()がどのように重複を処理するかを確認できるよう、強制的に重複値を追加しています。関数は1つ(H3)しかなく、結果のスプレッドセットの周囲に青い枠線が表示されていることからも、配列関数であることがわかります。また、元のデータはTableオブジェクトとして書式設定されているため、この関数は構造化参照を使用しています。
図A

このセクションを設けたのは、条件付き順位付けの計算には全く使用しないためです。代わりに、Excelのピボットテーブルに計算を任せます。不必要に複雑な式を書いて時間を無駄にしないために、このセクションを設けました。
Excel のピボットテーブルを使用して順位付けの条件を追加する方法
単純なランク付けは簡単に計算できますが、条件を考慮した計算が必要となる場合もあります。例えば、デモンストレーションデータを使用する場合、各コミッションの全体ランクではなく、各個人のランク付けをしたい場合があります。この場合、実際にはグループ全体、つまり各個人をランク付けしていることになります。条件とは、個人を指します。
まず、次のようにして同じシートに Excel ピボットテーブルを挿入します。
- コミッション テーブル (B2:F13) 内の任意の場所をクリックします。
- [挿入]タブをクリックします。
- [テーブル] グループで、[ピボットテーブル] をクリックします。
- 表示されるダイアログで、[既存のワークシート] をクリックします。
- 位置コントロール内をクリックし、「J2」(図B)と入力して「OK」をクリックします。これにより、ピボットテーブルフレーム(空白)の左上隅がセルJ2に配置されます。
図B

Excelにピボットテーブルフィールドウィンドウが表示されない場合は、空のフレームを右クリックし、表示されるサブメニューから「ピボットテーブルフィールド」を選択します。それでは、ピボットテーブルを作成しましょう。
- 上部のリストから行コントロールに [Personnel] フィールドをドラッグします。
- 上部のリストから「Commission」フィールドを「Values」コントロールに2回ドラッグします(本当に2回です)。これにより、「Columns」リストにフィールドが追加されますが、心配はいりません。
- 値コントロールの 2 番目の「手数料の合計」フィールドのドロップダウンをクリックし、リストから「値フィールドの設定」を選択します。
- 新しいフィールドに「 Rankings 」という名前を付けます。
- [値の表示形式] タブをクリックします。
- リストから「最小から最大へランク付け」(図 C ) を選択し、「OK」をクリックします。
図C

図D

図Dは、結果のピボットテーブルを示しています。ご覧のとおり、追加した「ランキング」列には、各人物(各人物はグループ)の順位が表示されています。元のデータセットには6人いるので、レコードは6つあり、順位は1から6までです。唯一失われるのは、先ほど(図B)に表示した重複した順位ですが、これは無関係です。もし2人の人物の合計コミッションが同じだった場合、ExcelのRANK()関数はそれらを同点として評価します。
参照: Microsoft Lists が新しい Excel である理由 (TechRepublic)
さらに、「小さい順から大きい順」を選択したため、順位の値が予想とは逆になっていることにお気づきでしょう。1は最低ランクを表します。どちらの方法も利用可能です。1を最高ランクとして人事を順位付けするには、「大きい順から小さい順」オプションを使用します(図C)。
Excelのランキング関数を使えば、簡単にランキングを作成できます。また、Excelのピボットテーブルを使えば、条件付きランキングを作成するのも簡単です。
乞うご期待
元のデータを並べ替えることができない場合、上位のコミッションを見つけるのは難しいかもしれません。今後の記事では、Excelの条件付き書式機能を使って上位3つのランキング値を強調表示する方法をご紹介します。