8 Replies Latest reply on May 21, 2015 7:58 PM by Kayoko Nishi

    Top9を表示し、それ以下をひとくくりにする方法

    Kayoko Nishi

      こんにちは。

      Tableau初心者です。

       

      カテゴリ毎に、アカウントの受注実績のTOP9を表示させ、TOP10以下をひとまとめに合算し「Other」として表示させたいです。

      カテゴリ毎に、アカウントの受注実績順にランキングをつけるとこまではできましたが、そこで止まってしまています・・・・

       

      ご教授よろしくお願いいたします。

       

       

      下記の表で説明すると、10位から25位までを合算し「other」とし表示させたいです。

      ランキングをつけて10以下をグループ化してしまうとAccountが固定になってしまうのでそれ以外の方法(数式を使うなど)で作成したいです。

      データは毎週入れ替わる為、データを書き換えると、自動で新しいランキングが付き、その新しいランキングで自動集計を行いたいです。

      よろしくお願いいたします。

       

      CategoryRankingAccountBooking
      Bag1A社10000000
      2B社8000000
      3C社6500000
      9D社500000
      10E社400000
      25F社30000
        • 1. Re: Top9を表示し、それ以下をひとくくりにする方法
          xiang liu

          can you upload the sample workbook or datasource?

          • 2. Re: Top9を表示し、それ以下をひとくくりにする方法
            Mariko Anzai

            初めまして、安西と申します。

             

            ご質問されているようなランキングの括りを良く使用しておりますので、ご共有させて頂きます。

            下記にざっくりと操作方法を書かせて頂きます。

             

            ①任意のディメンション(ご質問上でのAccount)に対して上位N位のセットを作成する。

             ⇒セットは任意のディメンションの上で右クリック⇒作成⇒セット で作成。

               セットのウィンドウが開いたら「上位」のタブをクリックし、「上位」「9」「使用したいメジャー」を設定する。

             ⇒ここではN位の部分にパラメータを使用することで上位N位のNを動的に変更できるようにしています。

             

            ②9位以下を判定する下記の計算フィールドを作成する。

            IF [セット名] THEN [Account]

            ELSE "Other" END

             

            ③上記計算フィールドをAccountの変わりにビューに入れることで、セットで設定したメジャーで計算した9位以下のAccountがOtherになる。

             

            セット自身はその条件のIN/OUTを返してくれるので、Otherのみ色を付けたりもできます。

            サンプルで作成したダッシュボードを添付しますので、こちらご覧になってみてください。

            「Top Customers by Profit」が①のセット、「Other判定」が②の式です。

            1 of 1 people found this helpful
            • 3. Re: Top9を表示し、それ以下をひとくくりにする方法
              Kayoko Nishi

              安西さん

               

              ご回答いただきありがとうございます!

               

              ディメンションで計算フィールドを作成し

              if(RANK(([Booking (Net Amount)])>10 then [Account] else 'Other' endif(RANK(([Booking (Net Amount)])>10 then [Account] else 'Other' end

               

              とやるとエラーになってしまい、そこで止まってしまっていました。

              セットを使うとうまくいくんですね。

               

              とても勉強になりました!

              ありがとうございます。

               

              サンプルも載せていただきとてもわかりやすかったです。

               

              が、その通りにやって「TOP9」と「Other」と分けて出すことはできたんですが

              棒グラフの並べ替えが、Otherが一番上にきてしまいます。

               

              更にカテゴリ別にすると並びがぐちゃぐちゃになってしまいます。

               

              サンプルを作成して後程添付いたしますので、どうぞ引き続きご教授お願いいたします。

              • 4. Re: Top9を表示し、それ以下をひとくくりにする方法
                Kayoko Nishi

                Hi xiang

                 

                I'm making sample data now.   I'll attach it here soon.

                Thanks.

                • 5. Re: Top9を表示し、それ以下をひとくくりにする方法
                  Mariko Anzai

                  サンプルファイルですが、twb形式ですとデータが見れませんのでtwbx形式で頂いてもよろしいでしょうか?

                   

                   

                  一旦、こちらのサンプルデータでちょっといろいろやってみましたのでご共有させて頂きます。

                   

                  ※添付させて頂きますファイルを例にご説明させて頂きます。

                   

                   

                  ①並び替えについて

                  単純に並び替えを行いますと、Otherがメジャーの合計が一番多いので一番上に来てしまいます。

                  対応策としましては、作成したセットを行に入れる(「Customers Name」の前)ことで、IN/OUTでソートされますのでOtherが一番下に来るようにソートできます。

                  IN/OUTは項目の上の▼部分をクリック⇒ヘッダーの表示のチェックを外すことで非表示にできますので、

                  表示項目は変更することなくソートができるかと思います。

                   

                   

                  ②カテゴリの項目を追加するとぐちゃぐちゃになってしまう件について

                  並び替えだけではなく、カテゴリを足すことでランキングにも大きく影響してきてしまうかと思われます。

                  今回は各カテゴリのTOPNを表示したいということでしょうか?

                  それだと少々複雑になってまいりますが、パターンを分けて2つほどご説明させて頂きます。

                   

                  <基本は1カテゴリ表示、フィルタでカテゴリを切り替えつつ見たい> シート:Sets

                  先ほどのビューの行に「Category」を追加し、フィルタにも同様のディメンションを追加して下さい。

                  そしてそのフィルタの「Category」をコンテキストに追加します。

                  クイックフィルターを表示し、各Categoryでフィルタをかけると各カテゴリ内での正しいランキング結果が表示されます。

                   

                  ※ただし、フィルターを「すべて」にするとランキング結果が変わります。

                   

                  ⇒全カテゴリを同時に表示すると、Categoryでパーテーションをかける前にCustomer Nameにランキングが振られてしまう為、

                    全体のTOPNの結果を単純にCategoryでパーテーションしているだけになってしまいます。

                    Categoryをコンテキストに入れることで動作順番を入れ替えれますが、「すべて」の場合はフィルタが作動しない為、うまくいかないようです。

                   

                  <全カテゴリを表示した状態でカテゴリごとのTOPNが見たい> シート:Advanced Calculation

                  Advanced Calculation(すみません、正式名称か怪しいです…)を使用することで対応ができます。

                  1 )下記の計算フィールドを作成します。

                  IF RANK(SUM([Profit]))<=[Top Customers] THEN ATTR([Customer Name])

                  ELSE "Other" END

                  2 )CategoryとCustomer Nameを行に入れた状態で1)の式を行に追加します。

                  3 )1)式の▼をクリックし、次を使用して計算⇒「Customer Name」と選択します。

                  4 )Customer Nameの▼をクリックし、ヘッダーの表示のチェックを外します。

                  5 )Ctrl+ドラック&ドロップで行に入っている1)式をフィルターにコピーします。

                   ※この時、新しくディメンションから1)式を追加すると上手くいきません。

                  6)「Other」を除外します。

                   

                  以上で、各カテゴリの正しいTOPNが表示されます。

                  ただ、この場合「Other」を除外しているのでOtherが表示されなくなってしまいます。

                  この部分の対策がまだ見つかっておらず…何か分かりましたらまたご共有させて頂きます。

                   

                  結構複雑ですが、もしかしたら9.0のLOD機能を使えばもう少し簡単にできるかもしれません!

                  • 6. Re: Top9を表示し、それ以下をひとくくりにする方法
                    Kayoko Nishi

                    安西さん

                     

                    色々とご説明いただき、ありがとうございます!

                     

                    まず添付ファイルを差し替えましたので、ご確認ください。今後添付する時には気を付けます。

                     

                    ①を試してみました。セットを行に入れたりもできるんですね。とても勉強になります。

                    表示もとてもいい感じです。

                     

                    カテゴリーや他の分類を入れてしまうと確かに全体でのランキングに引っ張られてしまいうまく表示されないというのはわかったんですが、どうやってカテゴリごとにランキングをつけ、さらにセットを混ぜていくのかがわからなかったのですが、Rank関数にセットを入れるんですね。こういった使い方もできるんですね。

                    とても参考になります。

                     

                    Otherが表示されないというのは残念です。

                     

                    9.0のLODですね。私も調べてみます。

                    わかりましたら、私もUp Dateします。

                     

                    色々とありがとうございました!

                    今後ともよろしくお願いいたします。

                    • 7. Re: Top9を表示し、それ以下をひとくくりにする方法
                      Mariko Anzai

                      ファイル拝見していろいろと調べてみましたが、昨日ご回答頂いた方法以外今のところはないかなと思っております…。

                      LODでランクを振る粒度を固定したかったのですが、rank関数やセットに対してこの機能が使えないようでした。

                      私も気になるので少々調べてみます!

                       

                      中途半端なご回答となってしまい、申し訳ございませんでした。

                      こちらこそ今後ともよろしくお願いいたします。

                      1 of 1 people found this helpful
                      • 8. Re: Top9を表示し、それ以下をひとくくりにする方法
                        Kayoko Nishi

                        安西さん

                         

                        とんでもございません。

                        本当に色々と細かくご説明いただき、ありがとうございました。

                         

                        セットを使うと色々な事ができるというのがわかって、大収穫です。

                        とても勉強になりました。

                         

                        今回はカテゴリ別にシートを作成し、それをダッシュボードでまとめて表示させる事で解決できそうです。

                         

                        もし何かいい方法が見つかりましたら、ご連絡いただけたらと思います。

                         

                        今後も色々とこちらのサイトに質問させていただきたいと思っていますので

                        どうぞ、よろしくお願いいたします。