4 Replies Latest reply on Jan 17, 2020 12:00 PM by suguru.inayoshi

    ディメンションのメンバー値を条件に、四捨五入を制御する方法

    suguru.inayoshi

      ディメンションのメンバー値を条件に、四捨五入を制御するノウハウをお持ちの方、ソリューションをご提供いただきたいです。

       

      データイメージと集計結果のイメージを添付します。

      条件文を加味して、集計後に小数点処理が可能かがポイントです。

       

      ご支援のほど、よろしくお願い致します。

        • 1. Re: ディメンションのメンバー値を条件に、四捨五入を制御する方法
          shuhei saito

          四捨五入した値を得られればよいのか、画面に表示する際に小数点以下の桁数を制御したいのかによって大きく異なります。

           

          単に値を得るだけなら、次のように通貨ごとに桁数を変更する計算を行えばよいと思います。

          桁数の指定をATTR関数で集計にしておくと、集計値に対して四捨五入をかけることができます。

           

          表示(見た目)の制御となると少し面倒で、文字列化するか、あるいは通貨ごとにメジャーを分けることになります。

          1 of 1 people found this helpful
          • 2. Re: ディメンションのメンバー値を条件に、四捨五入を制御する方法
            suguru.inayoshi

            ご回答いただき誠にありがとうございます。

            ATTRを使用することで、実現したいことはできました。

            ただ、ATTRを使うとなぜ実現できたのかはもう少し勉強が必要そうです。

             

            ちなみに、ご提示いただいた”四捨五入した値”はTableauServerのワークシート>ダウンロード>データ>すべてのデータにてダウンロードしたデータに含まれなかったのですが、ATTRを使用している(集計した結果に対する数値処理を行っている)から明細レベルでのデータダウンロードができない、という理解であっていますでしょうか。

            • 3. Re: ディメンションのメンバー値を条件に、四捨五入を制御する方法
              shuhei saito

              Tableauではデータを集計した状態か集計していない状態(非集計)かのどちらかで扱います。

              そして、仕様上、集計データと非集計データを混在させて計算することはできません。

              Tableau 内の集計関数 - Tableau

               

              SUMやMAXなどの関数はデータの集計(たくさんのデータを寄せ集めて足したり、大きいものを探したり)を行いますので、計算後の値は「集計値」となります。

              対して、[通貨] のように何も集計関数を使っていない状態では、その値は「非集計値」となります。非集計値はひとつひとつのデータ(レコード)を表します。

              したがって、 SUM(販売価格) * 通貨ごとのパターン のような式は集計と非集計が混在してしまうのでエラーになります。

              Tableauに触れていると、今後このエラーは幾度となく見ることになります。

               

              ATTR関数は「データを寄せ集めたときに、その中にある値が1種類だけだったらその値を、2種類以上あったら * を返す」という集計関数です。

               

              通貨ごとのパターン(JPYだったらゼロ桁、USDだったら2桁)に対してこのATTRをかけることで、式の返す値を集計値として扱うことできます。

              すると、SUM * ATTR はいずれも集計値なのでエラー無く計算できるというわけです。

              (同じ理屈で、ATTRでなくてもMINやMAXをかけることでも計算可能です。「式中のデータを集計値に揃える」ことがポイントです。)

               

               

              また、書いていただいた後半部分については、その認識で良いと思います。

              ビュー内の集計値が必要なときは、クロス集計でダウンロードしてください。

              2 of 2 people found this helpful
              • 4. Re: ディメンションのメンバー値を条件に、四捨五入を制御する方法
                suguru.inayoshi

                ここ数日集計関数と非集計関数の違いを見ていました。

                Tableauのロジック単独で考えるより、普段書いているSQLと関連付けながら考えるとよいということが判りました。

                 

                丁寧な解説ありがとうございました。

                大変助かりました。