【QuickSight】rankの使い方
QuickSightを使用する上で、細かい取り回しが効くと思っている「rank」の使い方をいくつか書こうかなと思います。今回は4事例ほど…
- 順位付け
- ソート
- 最新情報の表示
- 棒グラフなどの表示本数の制御
でお送りいたします。
1.順位付け
例えば、
No | kind | value |
---|---|---|
1 | a | 0.12 |
2 | a | 0.13 |
… | … | … |
10 | c | 0.24 |
みたいなデータを持っているとして、
#順位付け
rank(
[avg(value) DESC],
[]
)
とすれば、全体の[value]の値から、降順で順位を振ってくれる。
これを、[No]の横並びで比較したいのであれば、
rank(
[avg(value) DESC],
[No]
)
とすれば、
となる。後は、これに対して「条件付き書式設定」で色付けの設定を行うと、
のように見やすくなる。多少複雑にはなるが、[partition_filed]となる、二個目の[]の部分で複数の条件を付けてランク付けも可能になる。
2.ソート(rank使わなくてもよかった。修正)
X軸やY軸の順序を、自分がやりたい順序で表示したいときに使える。例えば先ほどの表の例でいうと、a→b→cの順序で並んでいるのだが、これを、b→a→cの順序に並べたいときに、
#kind-sort
ifelse(
{kind}="a",2,
{kind}="b",1,
{kind}="c",3,
99
)
として、それを「並べ替えオプション」で選択すると、
となる。例えば、曜日の並び替えとかで使用したりする。
3.最新情報の表示
例えば、異なる日付のデータを持っている場合、最新の日付のデータのみを表示したい時には、
#最新
rank(
[date DESC],
[kind]
)
としたものを、フィルタリングに、
とすれば、最新の情報のみ表示できる。
4.棒グラフなどの表示本数の制御
- 表示本数の制御に使用したいフィールドをrankをつける
- パラメータに数値の変数を作成し、コントロールに追加する
- フィルターに1で作成したrankに2で設定したパラメータを当てはめる
*余談
これはあまりない事例かと思うのですが、lagを使用した計算を行っていて、
lag(sum(value), [No ASC], 4, [kind])
+ lag(sum(value), [No ASC], 3, [kind])
+ lag(sum(value), [No ASC], 2, [kind])
+ lag(sum(value), [No ASC], 1, [kind])
といった感じで、Noを基準として見て、4つ分を足し上げたものを表示したいときに、そのまま表示すると、
となるのですが、これを見やすいようにと「フィルター」で「No」の5以上とかしてしまうと、
このようにフィルタリングされた状態から、表示される。
なので、これを先ほど設定したrankでの表示本数を制御すると、
こんな感じで見やすくなる。
さいご
今回はこれにて以上になります。まだ何個か私が使用しているやり方もあるのですが、長くなりすぎてもと思い、いずれ書きたいと思います。
Discussion