ある日のわたしの日記

misora05のブログ本館.ネタは乱雑.

RANKIF関数を作ってみよう!@Excel

新しいバージョンのExcelには,実は次々と新しい関数が追加されています.たとえば,

  • 複雑な入れ子のIF関数という,見るだけでやる気を削ぐ問題を解消しうる,IFS関数.
  • 条件付きMAX関数,MAXIFS関数.
  • 条件付きMIN関数,MINIFS関数.

いずれもまぁ,使いどころのある関数でしょう.
なので技術評論社さんは早くExcel関数ポケットリファレンスの新版を出してください.

Excel関数ポケットリファレンス [Excel2010/2007/2003/2002/2000対応]

あれ?RANKIF・RANKIFS関数??

そこであれ?と思ったんですが,条件付きRANK(RANK.EQ・RANK.AVG)関数ともいうべき,RANKIF・RANKIFS関数は実装されていないんですね.意外でした.
これがどういうときに欲しいのかというと,

f:id:misora05:20190220082344p:plain

このE列のように,「店舗別の売上順位を求めたい」というときに欲しいんです.
ていうかなくて困った.どうしましょう.
名前とかが「それっぽい」のは,私の勤務先がそれだからだ.咄嗟に思い付いたのがこれなんだから仕方あるまいw

なければ作ろう.

どんな関数が欲しいのかというとつまりは,

  • A列の同じ店舗内に所属する人の中で
  • 売上が,ある人以上の順位を持つ人の数を数える

ということになります.ということは,使うのはお馴染みCOUNTIFS関数ということになります.
つまり,

f:id:misora05:20190220083324p:plain

こうすればよいのです.

ただし,この方法には,「同じ順位の人がいた場合に表示が下位の側に合わせられる」という問題点があります.
これがどういうときに困るかというと,「同率首位が2人いた場合,それらはすべて2位扱いされる」という場合ですね.これはちょっと直感的とは言えないでしょう.

が,ウチの場合ではこれはそこまで深刻な問題ではなかったので,「簡単さ」優先で上図のような関数を使っています.過度に複雑化させても,見返りが少ないですからね.

Microsoft Store (マイクロソフトストア)