Tableauでサブカテゴリ毎にソートするスマートな方法2つ

2014.08.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、せーのです。
Tableau Desktopを使っていると、ちょっとした表現なのにそれがなかなかできない、ということに遭遇したりします。
今回ご紹介するtipsはこういう表現です。

category_sort

わかりますでしょうか?これは「カテゴリ別のサブカテゴリ別のリージョン別のSalesをサブカテゴリ毎の降順で並べてる」のですが、実際やってみるとこれがなかなかできません。では順を追ってご説明します。

普通にやるとこうなります

ではまず普通に作っていきます。使うデータソースはサンプルでもある「Superstore Sales」のOrderシートです。
まずは[Product Category][Product Sub-Category][Region]をRowsにドラッグします。

tableau_normal1

SalesをColumnsにドラッグします。これで「カテゴリ別のサブカテゴリ別のリージョン別のSales」が表示されます。

tableau_normal2

次に[Profit](利益)をMarksのColorにドラッグします。そうすると利益順に色分けされます。

tableau_normal3

見やすいようにカテゴリをフィルタリングします。[Product Category]を右クリックして「Show Quick Filter」を選択、表示されたQuick Filterの右上にあるトグルボタンをクリックし「Single Value(List)」を選択します。

tableau_normal4

さて、これをいい感じにソートしたいと思います。ソート方法ですがグラフ下部の[Sales]の横やナビバーにソートボタンがあります。これを押してみましょう。

tableau_normal5

なんか違いますね。綺麗にソートしてくれません。少し細かく設定してみます。Rowsにある[Product Sub-Category]の横のトグルボタンをクリックし「Sort」を選択すると細かいソートの設定画面が出てきます。

tableau_normal6

Sort orderを「Descending」ソート対象をSalesのSumとしてOKをクリックします。これでうまいこと

tableau_normal7

いきません。。。
とこのように、細かい表現で大幅に時間をロスすることになります。実は答えは、こうするのです。

方法1:Combine Fieldsを使う

これからご説明する方法1もこの後ご紹介する方法2もポイントは同じで「Sub-CategoryとRegionの間にソート対象となるFieldを挟む」というものです。
まずは「Combine Fields」という方法です。これは既存のFieldを複数結合させて新しいFieldを作成するというものです。今回はSub-CategoryとRegionを結合させます。
左側のDimensionsからSub-CategoryとRegionを選択し、右クリックから「Combine Fields」を選択します。すると下のように新しいFieldが出来上がります。

tableau_normal8

これをRowsにあるSub-CategoryとRegionの間にドラッグします。

tableau_normal9

そして追加されたField横のトグルボタンからSortをクリックし、SalesのSumをDescendingでソートするように設定します。

tableau_normal10

tableau_normal11

いい感じにソートされました。最後にグラフ上で要らないヘッダを削除します。同じく新しく追加されたField横のトグルボタンからShow headerをクリックし、横のチェックを外します。

tableau_normal12

方法2:Calculated Fieldを使う

もう一つの方法、それはCalculated Fieldを使う方法です。Calculated Filedは計算式を作ってグラフに適用させる方法です。やってみましょう。
画面左ペインのMeasuresの空いているスペースを右クリックし「Create Calculated Field...」を選択します。そうするとCalculated Fieldの計算式画面が出てきます。

tableau_normal13

Nameをrank、計算式に「index()」とだけ打ってOKを押します。この「index()」というのは名前の通りindex、番号をつけるという関数です。このrankをsub-categoryとregionの間にドラッグします。

tableau_normal14

そしてナビバーからソートボタンを押します。これで綺麗にソートされます。

tableau_normal15

tableau_normal16

うんうん、いい感じですね。最後は方法1同様要らないヘッダを消します。

tableau_normal17

まとめ

いかがでしたでしょうか。コツを掴むと結構簡単なのですが、このコツを知らないとハマりまくるかと思います。
TableauにはこんなTipsがたくさんありますのでこれからもポツポツ書いていきたいと思います。