10 Replies Latest reply on Nov 16, 2017 4:03 AM by LM Seven

    折れ線グラフと棒グラフの結果が異なる

    Takashi Miyoshi

      お世話になります。

      どうしても解決できない問題が発生しており、ご教示いただきたく思います。

      ※TableauDesktopは10.1.9 (10100.17.0614.1935) 32 ビット を使用して作成しました。

       

      プライマリデータソースの項目「金額」に、セカンダリデータソースの「上限幅」「下限幅」を加算し、
      各月の上下限値を折れ線グラフで表現する、以下のようなシートを作成しようとしています。

      問合せ_1.png

       

      しかし、グラフの種類を棒グラフとした場合、異なる結果となります。

      (2,4月に出ていた上下限値が出ていない)

      問合せ_2.png

       

      データ上は、プライマリデータソースの各月の結合項目に対して、セカンダリデータソースの対応するデータが3月分しか無いので、
      棒グラフ側の2、4月に上下限値が出ていない結果が正しい状況となっています。

      (2、4月には、プライマリとセカンダリで「結合項目」に一致するデータが無いのに、線グラフでは上下限幅が金額に加算された値が出力されている。)

       

      問合せ_3.png問合せ_4.png

       

       

      グラフの種類は線グラフとしたまま、棒グラフと同等の結果を表示するようにできないでしょうか。

       

       

      このシートは以下のように作成しています。

      ①プライマリデータソースとなる「データ1.xlsx」を読み込む。
      ②セカンダリデータソースとなる「データ2-1.xlsx」を読み込み、ユニオンで「データ2-2.xlsx」と結合する。

      問合せ_5.png

      ③プライマリとセカンダリのリレーションシップは「月」と「結合項目」とする。

      問合せ_6.png

      ④計算フィールド「金額(上限値)」「金額(下限値)」を作成。

      問合せ_7.png

      ⑤列にプライマリの「月」を設定。
      ⑥行に「メジャーバリュー」を設定し、表示する項目として「金額」「金額(上限値)」「金額(下限値)」を設定。
      ⑦グラフの種類を「線」や「棒」にする。

       

      以上、よろしくお願いします。

        • 1. Re: 折れ線グラフと棒グラフの結果が異なる
          Shinichiro Murakami

          みよしさん、

           

          グラフの種類は線グラフとしたまま、棒グラフと同等の結果を表示するようにできないでしょうか。

           

           

          これが全てかどうか不明ですが、とりあえず。

           

           

           

           

           

           

           

          タブローのデフォルト設定では、折れ線は積み重ねなし棒グラフは積み重ねで表示されるようになっています。

          同一画面でそれぞれを反対の設定に表示させる方法はないと思いますが、どちらも同時に、

          積み重ね、あるいは 積み重ねなし にすることは、上記の設定で可能です。

           

          積み重ねなしの棒グラフの場合、透明度がないと、最も上の色が表に出てくるので、それより小さい値は見えなくなります。

           

          参考

          よくある誤解-Tableauって積み上げ折れ線グラフが描けないよね?- - まだエクセルで消耗してるの? <タブローの部屋>

           

          Thanks,

          Shin

          1 of 1 people found this helpful
          • 2. Re: 折れ線グラフと棒グラフの結果が異なる
            LM Seven

            どうもLM-7です。

             

            あれ? 棒グラフのほうが正しくて、折れ線が間違っているという話しですよね?

            結論から言えば、Tableauのバグっぽいので、テクニカルサポートにご連絡ください。

             

            回避策なんですが、テーブル結合の方ならこのバグは出てこないようなのでそちらで対応するのが早いのではないでしょうか。

            テーブル結合は行レベルの結合になるので、重複行を回避する必要があります。

             

            1. テーブル結合します。

            2017-11-16_04h58_53.png

             

            2. テーブル結合した結果、重複行が発生しますね。ユニオンとくっつけた部分の金額は2重に出ています。

            2017-11-16_05h03_57.png

             

            3. 重複行を回避するために金額2を作ります。結合キーごとにPathを数えてそれで割ります。今は2で割ることになりますね。

            これで合ってるかな?ちょっと自信ないです(重複行の回避はもっとTableauがスマートに解決すべきだと思います。間違いやすいし)

            上限値/下限値はこの金額2と足してください。

            2017-11-16_05h35_40.png

             

            4. テーブル結合ならグラフの形を変えても同じになるみたいです。

            2017-11-16_05h16_42.png

            2017-11-16_05h16_50.png

             

            以上です。

            1 of 1 people found this helpful
            • 3. Re: 折れ線グラフと棒グラフの結果が異なる
              LM Seven

              重複行の削除ですが、よく考えるとLODを使うのならMINで良いですね(結果は同じです)。

               

              2017-11-16_06h12_08.png

               

              こちらを参照ください。

              LOD 計算を使用して重複データを削除する | Tableau Software

              • 4. Re: 折れ線グラフと棒グラフの結果が異なる
                Shinichiro Murakami

                ほう、LM-7さん、さすがに良い目をしていらっしゃる。

                ていうか、私のほうこそ、ちゃんと質問読めよって感じですみません。

                 

                あらためて見てみましたが、折れ線と棒グラフの振る舞いがちょっと違うのは承知したうえで、単純に同じ高さを表すのなら、

                「結合項目」がNULLなので、リンクさせません。

                月だけリンクして数字を持ってくるので以下のようになります。

                 

                 

                ただ、Blend ってLM-7さんが指摘されているように非常に扱いにくい(下記)ので、最小限の使用に留めるべきだと思います。

                 

                ちなみに、ブレンドすると、集計後の集計となrので、パフォーマンスもガタ落ちになります。

                加えて、集計の「粗度」によって、プライマリとセカンダリのデータ同士で抜けがあると狂います。

                 

                Shin

                • 5. Re: 折れ線グラフと棒グラフの結果が異なる
                  Takashi Miyoshi

                  村上さん、LM-7さん

                   

                  お二人とも、ありがとうございます。

                  参考になります。

                   

                  やはりこの事象、バグっぽいんですね…。

                  サポートへの連絡もしつつ、テーブル結合も試してみようと思います。

                  • 6. Re: 折れ線グラフと棒グラフの結果が異なる
                    Keiko Iizuka

                    MIYOSHIさん

                     

                    こちら、昔からあるTableauのバグですね…。

                    Tableauの描画ロジックとブレンド時集計ロジックの間でうまく折り合いがつかないらしく、根本的な解決が難しいようです。

                     

                    <本事象が発生する条件>

                    ・線グラフ、もしくはエリアチャート

                    ・ブレンド時、セカンダリデータソースからのメジャーを使用

                    ・ブレンド時、リレーションを設定している項目間で、「一方のデータソースには存在するがもう一方のデータソースには存在しない」メンバーが存在する

                     

                    <ざっくりとした原因のご説明>

                    ※私もコードの中身まで理解しているわけではないので、処理順序等はあまり深く考えずに読んでいただければ幸いです…。

                     

                    ・線グラフもしくはエリアチャートが選択された場合は、「隣り合うメンバーとどのように繋ぐか」を描画プロセスの中で決定しなければならない

                    ・今回であれば、結合項目A,B,Cが存在する3月を基準に、隣り合うメンバー=2月と4月はどこにプロットするかを探す

                    ・プライマリには、2月と4月には結合項目が存在しない(Null)→ では2月&Aのレコード、2月&Bのレコード、2月&Cのレコード…を、ブレンド前にプライマリ側に作ってしまえ!

                     

                    <回避策>

                    ・線を結ぶ基準としたい項目(今回であれば「月」)を、明示的に「パス」に配置する(添付ワークブック参照)

                     

                     

                    むらかみさん、LM-7さんが回答されている通り、値の重複に対処する必要がありますが、結合してしまうのも手だと思います。

                    上記回避策は簡単ではあるので、是非試してみてください。

                     

                    Iizuka

                    1 of 1 people found this helpful
                    • 7. Re: 折れ線グラフと棒グラフの結果が異なる
                      Shinichiro Murakami

                      IIZUKAさん

                       

                      ありがとうございます。

                      以前、BLEND時の折れ線の振る舞いでこんがらかったことがあったのですが、これが関係していたのかも知れません。

                      そんときも、たまたまPathでつないだような気もします。

                       

                      Blendは、その他にもいろいろとややこしいので、出来うる限り使いたくないですね。

                       

                      Shin

                      • 8. Re: 折れ線グラフと棒グラフの結果が異なる
                        Keiko Iizuka

                        むらかみさん

                         

                        そうですね、ブレンドはある程度綺麗なデータ同士であれば便利で、初心者の方でも簡単に複数データに繋げる機能ではあるのですが、こういう問題が起こってくると急に要求レベルが上がりますね。

                        かといって、結合もnon-techなユーザー様から見ると意外と(心理的)ハードルが高く…。

                        社員としては、どちらであっても極力分かりやすくご説明出来るように頑張ります。

                         

                        Iizuka

                        • 9. Re: 折れ線グラフと棒グラフの結果が異なる
                          Takashi Miyoshi

                          Iizukaさん

                           

                          回答ありがとうございます。
                          ご提示いただいた方法で実現が出来ました。
                          #なぜパスに配置すると解消するのかいまいち理解できていないですが…。

                           

                          実際に作成しているダッシュボードではプライマリデータソースをOracleDBとしており、
                          ExcelとDBの結合が運用上NGとなっていたため、LM-7さん案が使えなくどうしようかと思っていました。

                           

                          お三方とも、ありがとうございました。

                          • 10. Re: 折れ線グラフと棒グラフの結果が異なる
                            LM Seven

                            皆様、

                             

                            いやーバグだろうとは思いましたが、意外な回避方法があるのですね。

                            さすがにエリアチャートの場合はパスが無いので回避方法はないのでしょうね?きっと。

                             

                            個人的には

                            連続/不連続、テーブル結合、データブレンド、表計算、LOD

                            このあたりが上級者への壁な気がします。なんとなく使ってるとハマるのも辛いですね。