こんにちは! Turtleです。
突然ですが、「順位」という言葉を聞くと何を思い浮かべますか?
ぼくがパッと思い浮かべるのは2つ。
・定期試験の学年順位
・サッカーチームのリーグ順位
ここで「定期試験」「学年順位」というワードが出てくることから、なんとなくぼくの年代が推測できてしまう。(ヒント:まだぼくは 学生期間 > 社会人期間)
大学生の頃は4年間塾講師としてアルバイトしていたこともあって、「順位」と聞くとこういったワードのイメージが非常に強い。
ついでに、サッカーチームの方についても触れておこう。
ぼくはプレミアリーグ(イングランド)が好きでよく観ている。中でも、Chelsea FCには物凄く大きな愛を注いでいて、よっぽどのことがない限りリアルタイムで試合を観ていた。
この記事を読んでくれた方で、もしChelsea FCのファンの方がいれば、どうにかしてぼくにコンタクトをとってほしい。そして熱く語り合おうではないか!
...さて、熱くなってきたところで、気を取り直して。
今回はRANK関数を使って順位を表示する。
先程触れたように、自分で記事を作成して後から振り返ってみると、「順位」と聞いていまだに「定期試験」が顔を出すぼくの頭の中を、見事に反映した内容となっている。
それではいきましょう。
使用するデータのダウンロードはこちらから。
まずは、先程ダウンロードしてもらったデータをピボットで表示する。
ちなみに、今回はこのような設定。
①生徒数は全部で100人
➁クラスはA組, B組, C組の3つ
③生徒全員に対して100点満点のテストを実施
行に「名前」「クラス」「点数」を設定し、点数を降順にソートして以下のようなテーブルを完成させる。
それではこの状態から、全体順位とクラス順位をそれぞれ求めていく。
まずは、今回使用するRANK関数について見ていく。値の追加から数式エディタを開く。
右側の関数一覧で Rank にカーソルを合わせると、説明が表示される。
説明にもあるように、SisenseでRank関数は以下のように使う。
RANK (<集計>, [ASC/DESC], [ランクの種類], [<group by field 1>...<group by field N>])
...どうだろう。
説明を見ると使い方はだいたいわかるけれど、ひとつよくわからないところがある。それが、ランクの種類。
"1224" = 標準競争ランキング(デフォルト)
"1334" = 変更した競争ランキング
"1223" = 順位が飛ばないランキング
"1234" = 序数ランキング
こんな感じでさらっと書かれているけど、これを見ただけだとピンとこない。なので、実際にランキングを表示させてその違いを確認していこうと思う。
まずはデフォルトの"1224" 標準競争ランキングを表示する。
数式エディタに
RANK([Total 点数], "DESC", "1224")
以下のように、全体順位が表示されたはずだ。
ランクの種類を比較して確認するために、他の種類も表示してみる。
RANK([Total 点数], "DESC", "1334")
RANK([Total 点数], "DESC", "1223")
RANK([Total 点数], "DESC", "1234")
とそれぞれ数式エディタに入力してOKを押す。
以下のようにそれぞれのランキングが表示されるはずだ。
これですべてのランクの種類を使ってランキングを表示した。それぞれのランキングの出し方が分かったと思う。
今回は "1224" のランクの種類を「全体順位」として採用する。
RANK([Total 点数], "DESC", "1224") の値を「全体順位」に名前を変更し、他の値は削除しておく。
個人的には、基本RANK関数を使う際はこのデフォルトのランキングの出し方で特に問題ないと思う。ちょっと出し方を変えたいなぁというときにだけランクの種類を意識するくらいがいいのかもしれない。
先程は全体順位を求めたが、次はクラス順位を求める。
ここでRANK関数のおさらい。
RANK (<集計>, [ASC/DESC], [ランクの種類], [<group by field 1>...<group by field N>])
今回はクラスごとにランキングを出したいので、
[<group by field 1>...<group by field N>] のところを [クラス] とすれば良い。
それでは実際にクラス順位を出してみよう。
新しく値を追加して数式エディタを開き、
RANK ([Total 点数], "DESC", "1224", [クラス])
と入れてOKを押す。
あとは、今新しくつくった
RANK ([Total 点数], "DESC", "1224", [クラス]) を「クラス順位」と名前を変更して完成。
ちなみに、全体順位とクラス順位の差をはっきりさせるために 点数 のソートを外してあげるとこんな感じ。
今回は、RANK関数を使ってテストの全体順位とクラス順位を出してみた。
なんだか学生の頃の気持ちが蘇りますね。
学生の頃によく耳にした、「復習が大事」という言葉を思い出した!
...というわけで、RANK関数の使い方をもう一度載せておく。
RANK (<集計>, [ASC/DESC], [ランクの種類], [<group by field 1>...<group by field N>])
それではまた!