複数の列を基に順位をつける(RANK系の関数)

複数の列を基に順位をつける手順

エクセルにおいて、RANK.EQ関数を用いて1つの列だけでなく、複数の列を基に順位をつける方法を解説します。具体的な例を使って説明しますので、ぜひ参考にしてみてください。

準備するデータ

以下のようなデータを用意しました。各社員の成約数(今月、先月、先々月)が記録されています。

社員番号氏名部署今月成約数先月成約数先々月成約数
1中島 亮介人事部202
2岡田 淳マーケティング部060
3橋本 明美経理部605
4佐藤 花子開発部555
5伊藤 直人経理部336
6松本 舞人事部450
7田中 健一マーケティング部414
8加藤 陽子営業部061
9高橋 あすか経理部653
10斉藤 くみ子営業部256
11長谷川 聡太郎マーケティング部343
12橋本 健一人事部410
13小川 直子営業部152
14山下 京助マーケティング部001
15伊藤 康弘営業部542

順位の計算

今月の成約数だけでなく、先月、先々月の成約数も考慮に入れて順位を計算します。そのために、まずは各月の成約数に重みをつけて、新たな列「重み付き成約数」を計算します。今回は、今月の成約数には100倍の重み、先月の成約数には1倍の重み、先々月の成約数には0.01倍の重みをつけてみます。

倍率は任意で設定してください。

さて、新しい列で以下のような計算式を用います。下段はG2セルに入力した具体例です。

= 100 * [今月の成約数] + 1 * [先月の成約数] + 0.01 *[先々月の成約数]

= 100 * D2 + 1 * E2 + 0.01 * F2

この計算式を使って「重み付き成約数」を計算します。

次に、新しい列でこの「重み付き成約数」を基に順位を計算します。エクセルのRANK.EQ関数を使います。以下のような計算式を用います。下段はH2セルに入力した具体例です。

= RANK.EQ([重み付き成約数], [重み付き成約数の範囲])

= RANK.EQ(G2,$G$2:$G$16)

これで、各社員の順位が複数の月の成約数を基に計算されます。

結果の確認

これらの計算式を使って計算を行った結果が以下の表です。

社員番号氏名部署今月成約数先月成約数先々月成約数重み付き成約数順位
1中島 亮介人事部202200.0211
2岡田 淳マーケティング部060614
3橋本 明美経理部605600.052
4佐藤 花子開発部555505.053
5伊藤 直人経理部336303.069
6松本 舞人事部4504055
7田中 健一マーケティング部414401.046
8加藤 陽子営業部0616.0113
9高橋 あすか経理部653605.031
10斉藤 くみ子営業部256205.0610
11長谷川 聡太郎マーケティング部343304.038
12橋本 健一人事部4104017
13小川 直子営業部152105.0212
14山下 京助マーケティング部0010.0115
15伊藤 康弘営業部542504.024

まとめ

以上、複数の列を基に順位をつける手順を解説しました。エクセルを使って複雑な順位の計算も可能です。ぜひ参考にしてみてください。

コメント