4 Replies Latest reply on Feb 9, 2015 8:32 PM by Onishi Nobuyuki

    特定の文字列の置換、削除について

    Onishi Nobuyuki

      皆さんの知恵をお借りしたく、質問させてもらいます。

      会社の名寄せ.png

       

      あるDBから情報を読み込んだ際に、本来は同じ会社なのですが、画像のように『会社名』が3通りに表示されることがあります。

       

      Tableau上でこの3種類の会社名をグループ化して表示することは簡単なのですが、

      該当の会社名が1000社を超えるとなかなかの手間ですし、新たな表記の会社名が出てきた際のメンテナンスが大変です・・・・

       

      そこで、計算フィールドを使用して特定の文字列を削除、置換を行い(ある一定のルールに従って)

      これらの会社名を統一するようにしたいと考えています。

       

      適当な関数でいうと文字列関数の『REPLACE』かとは思うのですが、上手く表示ができません。

       

      上記の問題を解決する良い方法はないでしょうか?

       

      (前提として、元のDBの情報は変更しないとします。)

        • 1. Re: 特定の文字列の置換、削除について
          Keiko Iizuka

          Onishiさん

           

          この場合は、contains関数を使用すると可能かと思います。

           

          if contains([会社名], "ABC") then "ABC"

          elseif contains([会社名], "xxx") then "xxx"

          ...

          else [会社名]

          end

           

          これで、該当の文字列を含む場合はthen以下の文字列に置換され、含まない場合は元データの[会社名]を表示します。

          • 2. Re: 特定の文字列の置換、削除について
            Onishi Nobuyuki

            Iizukaさん

             

            回答有難うございます!

             

            ただ、私がやりたいことと少しイメージが違っておりまして・・・

            回答の関数ですと、具体的な会社名を計算フィールドに入力する必要があると思うのですが、

            この具体的な会社数が1000社超えることになりそうなので、途中で心が折れそうになるかなと・・・

             

            私がやりたいことを本当に具体的にいうと、『株式会社』、『㈱』、『半角スペース』といった文字をを取り除きたいのです。

            これをすることによって、同じ文字列になるのでTabelau上でも同じ会社として認識してくれると思うのですが・・・

            • 3. Re: 特定の文字列の置換、削除について
              Keiko Iizuka

              Onishiさん

               

              失礼いたしました。そうすると、

              1. FIND関数とLEN関数で取り除きたい文字列の位置と文字数を算出

              2. LEFT/RIGHT/LEN関数を使って元の文字列から取り除く

              という処理になります。

               

              確かに一度正しい計算式を作成してしまえばその後は自動化されますが、デメリットとして、計算式自体はCONTAINS関数より煩雑になると思います…。すべてのレコードに適用できるロジックを考えなければいけないので。

              また別のデメリットとしては、全レコードをなめての文字列処理になるので、パフォーマンスに影響が出る可能性が高いです。

               

              これはデータクリーニングの範囲なので、出来ればTableauで読み込む前にデータソース側で処理するのがベストだと思いますが、それは難しいでしょうか。

              1 of 1 people found this helpful
              • 4. Re: 特定の文字列の置換、削除について
                Onishi Nobuyuki

                Iizukaさん

                 

                追加の回答ありがとうございました。

                 

                確かに全レコードに対して適用できるロジックとなると難易度が上がってしまいますね・・・

                 

                とはいえ、データソース側で会社名の入力規則を制限することも難しいため、

                一回別のデータクリーニング作業をしてからTableauで読み込むというような形になってしまいそうですね

                 

                とりあえず、集計の運用方法でカバーできるようにやってみます。

                 

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