![【Tableau】RANK関数とは?使い方を分かりやすく解説](https://programmingnote.jp/wp-content/uploads/2024/05/Tableauアイキャッチ.png)
今回は表計算関数の中でよく使われるRANK関数について解説していきたい。
Contents
RANK関数とは?
RANK関数は現在の行のランキングを返してくれる関数だ。
RANK関数は表計算を簡単に使用できるように用意されている簡易表計算のランクで使用されている関数なので、意識してなくても実は結構使っている人は多いはずだ。
![RANK関数④](https://programmingnote.jp/wp-content/uploads/2023/04/RANK関数④.png)
具体例を見ていこう。
下記のように顧客の売上ランキングを表示する際などにRANK関数は活躍してくれる。
![](https://programmingnote.jp/wp-content/uploads/2023/04/RANK関数-1024x643.png)
上記例においては、顧客のみがディメンションに入っているので、顧客別の合計売上ランキングが表示されている。
ランキングなのでデフォルトは降順(数値が大きい順)のランキングになるが、下記のように昇順でのランキングを表示するとも出来る。
![RANK関数②](https://programmingnote.jp/wp-content/uploads/2023/04/RANK関数②.png)
表計算とは通常の関数と違い、表やグラフで表示した値をさらに計算する関数のことだ。
例えば、顧客区分ごとの売上を表示し、その数値を使って全体の中での売上割合を表示するということが可能だ。
![INDEX関数④](https://programmingnote.jp/wp-content/uploads/2022/11/INDEX関数④.png)
RANK関数も表計算関数の1つなので、表示されたグラフや表の数値を基にしてランキングを返しているのだ。
RANK関数の値に影響する要素
RANK関数でどんなランキングを表示させるかは下記に影響される。
- ビューに追加するディメンション
- 表計算の計算範囲と方向
ビューに追加するディメンションの影響
RANK関数はビューに追加されているディメンションに影響を受ける。
例えば、合計売上のランキングを表示する場合に、ディメンションに顧客を入れる場合と都道府県を入れる場合では当然ランキングは異なる。
![RANK関数⑤](https://programmingnote.jp/wp-content/uploads/2023/04/RANK関数⑤.png)
つまり、表示したいランキングに必要なディメンションをビューに追加する必要があるということだ。
「当たり前だよ!」と突っ込まれそうだが(笑)、ディメンションに影響を受ける点は理解しやすいと思う。
表計算の計算範囲と方向
理解がやや難しいのが表計算の計算範囲と方向による影響だ。
RANK関数が返す値は表計算の計算範囲(表全体/ペイン/セルなど)と計算の方向(横/横から下へ/下など)によって変わる。
例えば、下記のRANK関数は表の下に向かってランキングを計算し、都道府県ごとの合計売上ランキングを表示している。
![RANK関数⑥](https://programmingnote.jp/wp-content/uploads/2023/05/RANK関数⑥.png)
上図における表計算の計算範囲と計算の方向は下記となる。
- 計算範囲:表全体
- 計算の方向:下
それに対し、下記はペイン下に向かってランキングを計算し、地域ごとの都道府県売上ランキングを表示している。
![RANK関数⑦](https://programmingnote.jp/wp-content/uploads/2023/05/RANK関数⑦.png)
上記例の場合は先ほどと異なり、RANK関数により、「地域ごとの都道府県売上ランキング」が計算されている。
表計算の計算範囲と計算の方向は下記となり、地域の範囲内で都道府県売上ランキングを計算しているのだ。
- 計算範囲:ペイン(この場合は地域)
- 計算の方向:下
もう1つ例を見ていこう!
上の例の状態から、下記のようにRANK関数の計算範囲をペイン→表に変更すると下記のようにランキングの値が変わる。
![RANK関数⑧](https://programmingnote.jp/wp-content/uploads/2023/05/RANK関数⑧.png)
なぜ数値が変わったかというと、計算の範囲をペイン(この場合は地域)ではなく、表全体(この場合は都道府県)に変更したためだ。
これにより、地域ごと(ペイン)の都道府県売上ランキングではなく、都道府県(表全体)の売上ランキングに変わったため、ランキングの値も変わったということだ。
このようにRANK関数は表計算の計算範囲と計算の方向によって返す値が変わる点は是非覚えておいて欲しい。
表計算の計算範囲と方向についての詳細は下記記事にまとめている。
RANK関数の使い方
RANK関数の使い方は下記の通りだ。
![RANK関数の使い方①](https://programmingnote.jp/wp-content/uploads/2023/05/RANK関数の使い方①.png)
使い方はとてもシンプルでランキングを計算したいフィールドを指定するのみだ。
ただし、指定するフィールドは集計(合計や平均など)した状態で指定する必要がある点だけ注意が必要だ。
ランキングなので基本的には数値が大きい順で表示することが多いと思うが、もし小さい順(昇順)のランキングを表示したい場合は、オプションで'asc'と指定してあげる必要がある。
先ほどの都道府県ごとの合計売上ランキングを表示する場合は下記のようにRANK関数を使用している。
![RANK関数使い方具体例](https://programmingnote.jp/wp-content/uploads/2023/05/RANK関数使い方具体例.png)
上記例では合計売上を大きい順のランキングで表示しているので、オプションである昇順/降順の指定は省略している。
このような感じでRANK関数は使用することが出来る。
どのような数値を基にしてランキングを計算するかは上記のように計算フィールドで指定する。
そして、どの単位(都道府県ごとやカテゴリごとなど)でランキングを表示するかは前述したビューに追加されたディメンションと表計算の計算範囲と方向で指定することで調整するのだ。
RANK_UNIQUE関数との違い
RANK関数とよく似ている関数にRANK_UNIQUE関数がある。
この2つの関数の違いは同一の値があった場合のランクのつけ方だ。
例えば、下記はテストの点数の順位をRANK関数とRANK_UNIQUE関数でつけた例だ。
![](https://programmingnote.jp/wp-content/uploads/2023/07/RANKとRANK_UNIQUE②.png)
上記例では90点が2名いるが、それぞれの関数でランクのつけ方が下記のように異なっている。
- RANK関数:同じ値の場合は同じ順位をつけて、その分次の値をスキップしている
- RANK_UNIQUE関数:同じ値の場合でも必ず異なる順位をつける(上記の場合は同じ値の場合は名前順でランクを決めている)
RANK関数とRANK_UNIQUE関数はよく似ているが、このように違いがある。
ただし、使い方は上記例を見ればお分かりになる通り、全く同じだ。
どのようにランク付けをしたいかによって、RANK関数とRANK_UNIQUE関数は使い分けていくと良いと思う。
まとめ
今回は表計算関数の中でよく使われるRANK関数を紹介した。
RANK関数を自在に操るためには表計算の計算範囲と計算方向をよく理解する必要があるので、他の表計算関数の記事も参考にしながら、Tableau独自の機能である表計算について深く理解してもらえると良いと思う。
他の表計算関数は下記で紹介しているので是非参考にして欲しい。
【Tableau】INDEX関数とは?意味や使い方、活用シーンをわかりやすく解説!
【Tableau】SIZE関数とは?意味から使い方まで分かりやすく解説!
他のTableau関数のまとめは下記にまとめているのでこちらも参考にしてもらえると嬉しい。