8 Replies Latest reply on Jun 9, 2015 10:47 PM by Kiyomi Okuyama

    2つのデータソースを接続

    Kiyomi Okuyama

      Tableau Support Community Japan の皆さま はじめまして 奥山と申します。

      Tableau初心者で色々勉強中です。

      どなたかご存知の方がいらっしゃればお教えください。

          

      現在、年間ごとの商品修理のCost分析をTableauで集計しており、下記サンプルブックのようなグラフを作成しています。

      2つのデータソースの情報を接続して、1つのワークシート内でデータを算出したいのですが、下記のような問題があり

      算出ができません。

      Tableau Customer portal には、「データ結合の方法」で質問してみましたが、思うような回答が得られなく、

      今回はリレーションシップでの接続方法で試してみました。

       

      【算出したい数値】

      20141年間の商品修理に対するTotalcost(¥)を算出。

      20141年間の設置台数に対して、年間  商品修理Totalcost(¥)を算出。

       (Totalcost(¥)/ 設置台数)

          

      【問題点】

      データを単独で接続し、算出すると正確な数値を算出できますが、

      リレーションシップで接続し、フィルター条件を付けると違う数値が算出されてしまいます。

       

      サンプルデータなので1月のみのデータです

      Starttimeデータのデータ型はLaborhours(作業時間)算出の為、日付時刻 型が必要。

       

      上記のリレーションシップ接続でなくても他によい方法があれば、教えていただければありがたいです。

      以上、説明が不十分な点があるかと思いますが、よろしくお願いします。

        • 1. Re: 2つのデータソースを接続
          Naoya Urata

          奥山さん

           

          お世話になっております。Tableau Japanの浦田です。

           

          問題点について確認させていただきたいのですが、

          違った数値というのは何をもって違った数値とおっしゃっておりますでしょうか?

           

          たとえば「▼▼のフィルターを使ったら本来は○○となるべきなのに××となってしまう」

          というような例を出していただけると解決への糸口が見えるかと思います。

          宜しくお願いいたします。

           

          浦田

          1 of 1 people found this helpful
          • 2. Re: 2つのデータソースを接続
            Hiroaki Morita

            Kiyomi 様

            こちらの問題は、まだ未解決でしょうか?


            データの中身を拝見させて頂きました。一番大きな問題は、データ型の設定です。

            Starttime__C と Installdate のデータ型が、「日付と時刻」になっています。

            データ型を「日付」型に変更してみて下さい。

            これでBlendできるようになります。

            時刻までをキーにしてリレーションシップが行われているので、Tableauが参照できないんんだと思います。


            データ型の変更は、データ接続画面の項目ヘッダーのところで行うか、

            ワークシートでディメンションを右クリックして「データ型の変更」で変更できます。







            1 of 1 people found this helpful
            • 3. Re: 2つのデータソースを接続
              Hiroaki Morita

              キャプションをよくよく拝見すると、Starttime__C は別用途で時刻まで必要とのことですので、

              date([Starttime__C] ) で新しいディメンションを作成し、これと Installdate をリンク設定してはどうでしょうか?

              Installdate は、日付時刻型になっていますが、データは全て m/d/yyyy 12:00:00 AM 形式になっていますので、

              時刻を必要としない日別集計データだと解釈しました。


              但し、これで求めている結果が出せているかというと別の問題があるような気がします。

              (Modelname はリンク条件にしなくて良いのか?等)

              1年間の設置台数」がどういう条件の台数なのかがわかると、具体的に解決策を示せると思います。

              1 of 1 people found this helpful
              • 4. Re: 2つのデータソースを接続
                Hiroaki Morita

                日付型でのリンクは、別のディメンションを作成しなくてもリンク時にマッピングの編集画面で指定できるので、このほうが良いでしょう。

                mapping.jpg

                ここから先は、出したい結果が何か?によりますが、最低限、日付フィールドでのリンクは必要になると思うので補足しました。

                 

                少しデータをながめてみましたが、ひょとして、

                「月合計で良いから、合計([Total Cost]) /合計([設置数)]、すなわち 3,248,261 ÷ 54 を出したい 」ということでしょうか?

                週別、日別の別けたり、他の項目で別けて分析したいのでしょうか?

                内容によっては、データの持ち方を工夫したほうが簡単かな?と思います。

                1 of 1 people found this helpful
                • 5. Re: 2つのデータソースを接続
                  Hiroaki Morita

                  月毎集計という前提で、私なりの解決方法を添付します。

                  [リレーション接続 _after] というワークシートを追加しましたので、そちらを確認してみて下さい。

                   

                  変更したことは、

                  Starttime__C と Installdate のリレーションシップの設定を「月/年」にしただけです。


                  [リレーション接続 _after] の[設置数] の集計結果は 53 になりますので、

                  Totalcost(¥)/ 設置台数 は61,288 になります。


                  設置数の集計結果が 53 になる理由は、フィルター条件に Preservation_C と Warranted_C があり、

                  Modelname_C ='S' は選択条件に該当しないため、Asset DATA テーブルからも省かれてしまうからです。

                  これはデータ内容の問題と考えられます。

                  フィルター条件によっては同様のことが起こる可能性がありますので、データの持ち方を工夫したほうが良いでしょう。

                  imageFile.jpg


                  参考になりますでしょうか?

                  1 of 1 people found this helpful
                  • 6. Re: 2つのデータソースを接続
                    Kiyomi Okuyama

                    Moritaさん    返信が大変遅くなり申し訳ございません。ご回答ありがとうございました。

                    投稿した上記の問題について、色々な方法を試していて解決策がなかなかみつかりませんでした。

                    上記と関係する問題で、一部Tableauカスタマーポータルに問い合わせていて、フィルターのかけ方にも問題があったようで、その部分も解決し、Moritaさんの回答と合わせて再度、サンプル1_after Tableau.twbx の通り試してみました。

                     

                    まず、ブックのとおりリレーションで、下記のように接続しました。

                     

                    リレーション.png

                     

                    そして、フィルターの問題もあったので、カスタマーポータルで質問し回答を得た結果、Total Costデータのみフィルターをかける方法がわかりました。

                     

                    計算フィールドで、「 TotalCost_Filter 」として

                     

                    式を 

                      If [Preservation__C]= "修理" AND [Warranted__C] = 1

                      THEN [Totalcost()]

                      ELSEIF [Preservation__C]= "再修理" AND [Warranted__C] = 1

                      THEN [Totalcost()]

                      ELSEIF [Preservation__C]= "継続修理" AND [Warranted__C] = 1

                      THEN [Totalcost()]  

                    としました。

                     

                    このTotal Cost_FilterTotalcostの代わりに行レベルにあげます。

                    同じようにTotal cost / 設置数も、計算フィールド「Real Totalcost / 設置数」として

                    式を SUM([TotalCost_Filter])/[設置数] とし、Total cost/設置数の代わりに行レベルにあげました。

                    Totalcost 3,248,261 ÷ 設置数 54 = 60,153 ⇒正解数値 

                    これで正確な数値が出すことができました。


                    Moritaさん    とても丁寧な解説をいただきありがとうございます。

                    まだまだTableauを使いこなせていませんが、少しずつ勉強していき、また問題があった時は皆さんのお力をお借りしたく利用させていただきたいと思います。

                    • 7. Re: 2つのデータソースを接続
                      Kiyomi Okuyama

                      Tableau Japanの浦田様


                      返信が大変遅くなり申し訳ございません。ご連絡ありがとうございました。

                      上記の問題について、色々試してみましたが、解決策がなかなか見つかりませんでしたが、

                      先日コミュニュティに投稿してくださったMoritaさんのアドバイスもあり、解決できました。

                      ありがとうございました。

                      また、コミュニティを利用させていただきます。

                      • 8. Re: 2つのデータソースを接続
                        Kiyomi Okuyama

                        Tableau Japanの浦田様


                        返信が大変遅くなり申し訳ございません。ご連絡ありがとうございました。

                        上記の問題について、色々試してみましたが、解決策がなかなか見つかりませんでしたが、

                        先日コミュニュティに投稿してくださったMoritaさんのアドバイスもあり、解決できました。

                        ありがとうございました。

                        また、コミュニティを利用させていただきます。