Tableauでサブカテゴリ毎にソートするスマートな方法2つ
こんにちは、せーのです。
Tableau Desktopを使っていると、ちょっとした表現なのにそれがなかなかできない、ということに遭遇したりします。
今回ご紹介するtipsはこういう表現です。
わかりますでしょうか?これは「カテゴリ別のサブカテゴリ別のリージョン別のSalesをサブカテゴリ毎の降順で並べてる」のですが、実際やってみるとこれがなかなかできません。では順を追ってご説明します。
普通にやるとこうなります
ではまず普通に作っていきます。使うデータソースはサンプルでもある「Superstore Sales」のOrderシートです。
まずは[Product Category][Product Sub-Category][Region]をRowsにドラッグします。
SalesをColumnsにドラッグします。これで「カテゴリ別のサブカテゴリ別のリージョン別のSales」が表示されます。
次に[Profit](利益)をMarksのColorにドラッグします。そうすると利益順に色分けされます。
見やすいようにカテゴリをフィルタリングします。[Product Category]を右クリックして「Show Quick Filter」を選択、表示されたQuick Filterの右上にあるトグルボタンをクリックし「Single Value(List)」を選択します。
さて、これをいい感じにソートしたいと思います。ソート方法ですがグラフ下部の[Sales]の横やナビバーにソートボタンがあります。これを押してみましょう。
なんか違いますね。綺麗にソートしてくれません。少し細かく設定してみます。Rowsにある[Product Sub-Category]の横のトグルボタンをクリックし「Sort」を選択すると細かいソートの設定画面が出てきます。
Sort orderを「Descending」ソート対象をSalesのSumとしてOKをクリックします。これでうまいこと
いきません。。。
とこのように、細かい表現で大幅に時間をロスすることになります。実は答えは、こうするのです。
方法1:Combine Fieldsを使う
これからご説明する方法1もこの後ご紹介する方法2もポイントは同じで「Sub-CategoryとRegionの間にソート対象となるFieldを挟む」というものです。
まずは「Combine Fields」という方法です。これは既存のFieldを複数結合させて新しいFieldを作成するというものです。今回はSub-CategoryとRegionを結合させます。
左側のDimensionsからSub-CategoryとRegionを選択し、右クリックから「Combine Fields」を選択します。すると下のように新しいFieldが出来上がります。
これをRowsにあるSub-CategoryとRegionの間にドラッグします。
そして追加されたField横のトグルボタンからSortをクリックし、SalesのSumをDescendingでソートするように設定します。
いい感じにソートされました。最後にグラフ上で要らないヘッダを削除します。同じく新しく追加されたField横のトグルボタンからShow headerをクリックし、横のチェックを外します。
方法2:Calculated Fieldを使う
もう一つの方法、それはCalculated Fieldを使う方法です。Calculated Filedは計算式を作ってグラフに適用させる方法です。やってみましょう。
画面左ペインのMeasuresの空いているスペースを右クリックし「Create Calculated Field...」を選択します。そうするとCalculated Fieldの計算式画面が出てきます。
Nameをrank、計算式に「index()」とだけ打ってOKを押します。この「index()」というのは名前の通りindex、番号をつけるという関数です。このrankをsub-categoryとregionの間にドラッグします。
そしてナビバーからソートボタンを押します。これで綺麗にソートされます。
うんうん、いい感じですね。最後は方法1同様要らないヘッダを消します。
まとめ
いかがでしたでしょうか。コツを掴むと結構簡単なのですが、このコツを知らないとハマりまくるかと思います。
TableauにはこんなTipsがたくさんありますのでこれからもポツポツ書いていきたいと思います。