バンプチャートで理解する表計算
バンプチャートとは
バンプチャートというグラフがあります。 縦軸に順位(ランキング)、横軸に時系列をおいたグラフです。
ランキングの推移を見るときに便利です。
この記事ではこのバンプチャートを作りながら、tableauにおける表計算について解説します。
バンプチャート作成手順
まずは大まかなバンプチャートの作成手順を示します。
(1)列にオーダー日(年)、行に売上をドロップし折れ線グラフを作る
(2)カテゴリを色にドロップし折れ線を3つに分ける
(3)売上を簡易表計算からランクを選択
(4)「次を使用して計算:」から「カテゴリ」を選択
(5)売上(ランク)をコピーして、1つの目のマークを円にする
(6)2重軸にする
(7)ランクをラベルに表示する(位置が円の中に来るように調整)
(8)軸を同期して反転する
はい。これで完成です。
表計算について
私がこの手順の中で最初よくわからなかったのが
(4)「次を使用して計算:」から「カテゴリ」を選択
です。 なぜこの操作が必要なのか、この操作はどういう意味を持つのかを考えてみます。
あらためてこの操作の前後の見た目を確認します。
まずは最初にランクを選択したときに発生する挙動
ぐちゃぐちゃしてよく分からない線になっています。
これをカテゴリを選択するときれいに表示されます。
何が変わったのでしょうか。
バンプチャートはディメンションが2種類あるのがポイントです。
年(オーダー日)とカテゴリの2種類。
年(オーダー日)はこの4つです
- 2018
- 2019
- 2020
- 2021
カテゴリはこの3つです
- 家具
- 家電
- 事務用品
組み合わせは4x3で12個になります。
この中でどの軸でランクをつけるのかをtableauに教えてあげなければいけません。
- カテゴリのランキングなのか
- 年(オーダー日)のランキングなのか、
- はたまたカテゴリと年(オーダー日)の全部の要素の中でランク付けするのか
それを指定するのが「次を使用して計算」です。
ディメンションが1つであればあまり気にする必要はありません。 たとえばカテゴリしか指定がなかったら、 家電が1位、家具が2位~のようにカテゴリのランキングだということは明確です。 (しいていえば売上が高い順か低い順かぐらいでしょうか)
「次を使用して計算」による動きの変化
tableauには表計算アシスタントという機能があるので、それで違いを見てみましょう
年(オーダー日)で計算した場合のイメージ
ランキング | 年 |
---|---|
1位 | 2021年 |
2位 | 2019年 |
3位 | 2020年 |
4位 | 2018年 |
見たいのはこのランキングじゃないですね。
カテゴリで計算した場合のイメージ
ランキング | カテゴリ |
---|---|
1位 | 家電 |
2位 | 家具 |
3位 | 事務用品 |
見たいのはこのランキングですね。
このようにどのディメンションごとにランキングを出すのかを指定するのかが「次を使用して計算」です。
index()を使った例
今まではランキングでしたが、今度はindex()関数を使って確認してみます。
要はindex()とは、表に1から順番に番号を振ってくれる関数です。
年(オーダー日)を列に、カテゴリを行に、index()をマークラベルに配置します
このように指定するディメンションによって番号の振られ方が変わってきます。
カテゴリを変えると赤くなる理由
今回はカテゴリでランキングを作りましたが、異なる切り口でバンプチャートを作り直したくなることもあると思います。
試しにカテゴリをサブカテゴリに変更してみましょう。
するとエラーが発生してしまいました。
カテゴリ単位のバンプチャートをサブカテゴリ単位にしたいだけなのに、なぜ合計(売上)ランクがエラーになるのでしょう
そうです。ランクの計算に「カテゴリ」を使っているからです。
これらの表計算のディメンションもすべてカテゴリからサブカテゴリに変更してあげる必要があります。
修正したら無事にサブカテゴリのバンプチャートになりました。
【表(横)や表(下)について】 今回あえて省きましたが、ディメンションでの計算ではなく、 表計算では「表(横)」や「表(下)」なども選択することができます。 たとえば「表(下)」は文字通り表を下方向に向けて計算します。 「表(下)」と「カテゴリ」はこの例だと計算順番は同じです。 ただし表(下)はディメンションに依存していないので、 カテゴリをサブカテゴリに変更してもエラーになりません。
終わりに
表計算はtableauの中でもややこしい分野ですが、実際にバンプチャートというグラフを作り試行錯誤することで理解が深まりました。
今回の記事が表計算について悩んでいる方の助けになれば幸いです。