8 Replies Latest reply on Jul 18, 2014 11:26 AM by Veronica Simoes

    Como fazer a subtração de valores de um conjunto?

    Rafaell Silva

      Boa tarde,


      Sou novo no uso do Tableau e estou com a seguinte dúvida:

       

      Tenho uma tabela que relaciona ordens de serviços à CPFs de clientes. De maneira que toda ordem de serviço tem somente 1 CPF relacionado, e cada CPF pode ter uma ou mais ordens de serviço associadas.

      O que me interessam são os CPF’s com mais de uma ordem de serviço, pois isso indica que o serviço foi feito de maneira inadequada da 1ª vez e, por isso, teve de ser repetido.

       

      Então criei um conjunto dos CPF’s cuja contagem distinta é maior que 1.

      Depois um conjunto de serviços que tem CPF ‘reincidente’.

      Neste conjunto de serviços preciso fazer um calculo. Preciso pegar todos os serviços relacionados a um mesmo CPF e subtrair 1 (para desconsiderar o ultimo serviço, o qual por sinal resolúvel o problema do cliente ).


      Segue um exemplo com base na tabela:



        

            OS                    CPF
      10111.111.111-11
      20111.111.111-11
      30111.111.111-11
      40111.111.111-11
      50222.222.222-22
      60222.222.222-22
      70222.222.222-22
      80333.333.333-33
      90444.444.444-44
      100555.555.555-55


       

       

      Notem que os CPFs 111.111.111-11 e 222.222.222-22 são os únicos que possuem varias ordens de serviço

      Para o CPF 222.222.222-22 temos os serviços 10, 20, 30 e 40 (4 serviços)

      Para o CPF 222.222.222-22temos os serviços 50, 60 e 70 (3 serviços)

      O que eu consegui até agora é um conjunto contendo os serviços relacionados aos CPFs ‘reincidentes’: 10, 20, 30, 40, 50, 60 e 70. Desta maneira o Tableau me diz que existem 7 serviços ‘reincidentes’.


      Porem como eu expliquei é necessário subtrair o ultimo serviço de cada CPF (pois esse resolveu o problema e maneira que não gerou custos extras para a empresa). Então ficaria desta forma:

      Para o CPF 222.222.222-22 temos os serviços 10, 20, 30 e 40 (4 serviços  – 1 = 3 serviços)

      Para o CPF 222.222.222-22 temos os serviços 50, 60 e 70 (3 serviços – 1 = 2 serviços)

      Somando o resultado eu teria 5 serviços.


      Minha dúvida é: como eu faço essa subtração em separado para cada CPF, pois quando crio um campo calculado o Tableau primeiro soma todos os serviços (4 + 3 = 7) e depois subtrai somente 1 (7 – 1 = 6 ). Reparem que o resultado obtido pelo Tableau é 6, enquanto o verdadeiro resultado é 5; é o pior é que quanto maior o número de CPFs e de serviços maior será a distorção do resultado.


      Qualquer ajuda será muito bem vinda.

      Obrigado!

        • 2. Re: Como fazer a subtração de valores de um conjunto?
          Rafaell Silva

          Oi Veronica,

          Obrigado por responder meu post.

           

          Bom, o exemplo pratico mais básico que eu poderia te dar é esse da tabela mesmo. Nela eu tenho ordens de serviço relacionadas a CPFs.

            

          OSCPF
          10111.111.111-11
          20111.111.111-11
          30111.111.111-11
          40111.111.111-11
          50222.222.222-22
          60222.222.222-22
          70222.222.222-22
          80333.333.333-33
          90444.444.444-44
          100555.555.555-55
          110111.111.111-11

           

          _________________________________________________________________________________________

          1. Primeiro eu seleciono apenas os CPFs que se repetem. Ou seja os CPFs cuja contagem distinta é maior que 1.

            

          OSCPF
          10111.111.111-11
          20111.111.111-11
          30111.111.111-11
          40111.111.111-11
          50222.222.222-22
          60222.222.222-22
          70222.222.222-22


          ___________________________________________________________________________________________

          B. Agora eu faço uma contagem distinta dos CPFs selecionados, que vai ser igual à 2.

             

          OSCPF
          10111.111.111-11
          20111.111.111-11
          30111.111.111-11
          40111.111.111-11
          50222.222.222-22
          60222.222.222-22
          70222.222.222-22

                           2

           

          contagem distinta de CPF reincidentes = 2

           

          _____________________________________________________________________________________________

           

          C. Depois eu somo as ordens de serviço relacionadas à estes cpfs. Ou seja: some a contagem distinta de ordens de serviço que possuem cpf com a contagem distinta maior que 1. Isso vai me retornar o resultado 7, conforme podemos ver abaixo.

          OSCPF
          10111.111.111-11
          20111.111.111-11
          30111.111.111-11
          40111.111.111-11
          50222.222.222-22
          60222.222.222-22
          70222.222.222-22

          7

          contagem distinta de Ordens de Serviço relacionas aos CPF reincidentes = 7

           

          ______________________________________________________________________________________________

           

          D.     Por fim chega a hora de implementar minha regra de negócios. Sabendo que devo subtrair a primeira ordem de serviço de cada CPF repetido, eu posso afirmar que terei de subtrair 1 ordem de serviço por CPF.

           

          Como o fator de multiplicação é de 1 ordem para 1 CPF então o numero de ordens a serem subtraídas será sempre o mesmo numero da contagem distinta de cpfs que obtivem em “B” .

           

          Por exemplo: se eu tiver 2 CPFs devo subtrair a primeira OS de cada, sendo assim subtraio 2 OS.

          Se tivesse 3 CPFs subtrairia 3 OS. E assim por diante.

          Percebe? No final das contas a quantidade de OS a serem subtraídas vai ser sempre a mesma quantidade de CPFs obtidos em “B”, já que se trata de uma multiplicação de 1 para 1.

           

          Então para que eu possa obter o resultado correto basta subtrair a contagem de CPFs reincidentes da contagem de OS relacionadas à eles.

          Logo 7 – 2 = 5

           

          __________________________________________________________________________________________

           

          O problema que estou tendo é que não consigo realizar essa subtração no Tableau, pois criei um conjunto logico com base nas ordens de serviço. Esse conjunto tem como 'condição' uma COUNTD(CPF) > 1.

          Ou seja, ficam dentro do conjunto as ordens de serviço relacionadas aos CPF 'reincidentes' e fora do conjunto as ordens relacionadas aos CPFs únicos.

           

          A partir deste ponto tenho que pegar só a parte 'dentro' do conjunto e subtrair o numero de CPFs relacionados à essas OS.

           

          Mas o Tableau não deixa, ele não consegue criar um subconjunto com essa regra, e quando uso os campos calculados ele diz que não é possível subtrair um inteiro de um booleano (já que o conjunto retorna um booleano 'dentro/fora').

           

          Como expliquei é uma conta simples no excel>

          Conte o numero de CPFs repetidos   (2)

          Conte o numero de ordens de serviço relacionadas aos CPFs repetidos (7)

          Subtraia o numero de CPFs repetidos da contagem de OS relacionadas à eles (5)

           

          Se você puder me ajudar eu agradeceria muito.

           

           

            Obrigado pela atenção.

          • 3. Re: Como fazer a subtração de valores de um conjunto?
            veronica.simoes.0

            Oi , Estou montando o exemplo enviado para ver se consigo solicionar seu problema.

            • 4. Re: Como fazer a subtração de valores de um conjunto?
              Rafaell Silva

              Muito obrigado Verônica!
              Eu também estou tentando uma solução mas ainda não consegui.

               

              Segue um exemplo em Excel com uma formula quase idêntica à que roda em nossa macro atualmente.

               

              Como eu falei é uma coisa bem simples que estamos tentando fazer, apenas contamos o número de ordens de serviço; depois contamos os número de CPFs distintos. E então subtraímos o segundo resultado do primeiro.


              Assim nós obtemos a quantidade de serviços improdutivos ou "reincidentes", como nós chamamos por aqui, que são aqueles em que o técnico foi  na casa da pessoa mas teve que voltar outras vezes.

               

               

              Muito obrigado!

              • 5. Re: Como fazer a subtração de valores de um conjunto?
                veronica.simoes.0

                OI Rafael

                 

                Quase lá

                 

                Segue twbx

                • 7. Re: Como fazer a subtração de valores de um conjunto?
                  Rafaell Silva

                  Oi Verônica!

                   

                  Eu agradeço por sua atenção, mas um consultor do tableau nos de um auxilio aqui na empresa. Ele conseguir chegar à solução usando nossa base de dados, mas o problema é que a solução ficou tão complicada que acabamos achando melhor continuar no Excel mesmo.
                  Para vc ter uma ideia foi preciso criar 12 campos calculados para substituir 2 formulas do Excel.

                  Dessa forma ficou inviável, pois vez ou outra temos que mudar os parâmetros da formula no Excel, e para fazer isso com o Tableau teríamos que mudar todos os campos calculados. Isso seria um pesadelo em um dia critico com muitos problemas de clientes a serem resolvidos, pois além de nos preocuparmos em resolver efetivamente o problema teríamos ainda uma preocupação adicional em resolver o tratamento de dados.

                  De qualquer forma muito obrigado por sua atenção. 

                  • 8. Re: Como fazer a subtração de valores de um conjunto?
                    Veronica Simoes

                    Oi Rafaell,

                     

                    Ainda estou tentando conseguir uma solução mais rapida

                     

                    Abs