6 Replies Latest reply on Oct 26, 2018 6:01 AM by Karenina Nobre

    Cálculo de campos agregados

    Karenina Nobre

      Pessoal, preciso de ajuda!!

       

      Estou fazendo um painel sobre OTIF, para quem não sabe, é um indicador de Logística que analisa se os pedidos são entregues no tempo certo (OnTime) e a quantidade solicitada (InFull).

      E o OTIF é a multiplicação do OnTime pelo InFull.

       

      O resultado do cálculo do OnTime e InFull é 0 ou 1 e o total a média. Já o OTIF o cálculo é multiplicação linha a linha e total, OnTime x InFull.

      Ex: Se tenho 100 pedidos e 80 foram InFull = 1, então 80/100, tenho InFull de 80%.
             Se tenho 100 pedidos e 70 foram OnTime = 1, então 70/100, tenho OnTime de 70%
             OTIF ficaria 80% * 70% = 56%

      O meu problema é.... Uso duas fontes de dados, uma Excel onde tenho os dados dos pedidos como datas e volume vendido e outra, Firebird, onde tenho os dados da ocorrência (Cod do Pedido, Motivo e Responsável), caso tenha sido registrada pra algum pedido. Descobri que o Firebird não permite fazer Union com outras fontes e ai começa o meu problema. As fontes são ligadas apenas pelo campo "Cod Pedido".

       

      Para fazer uma análise, de acordo com o resultado do Ontime (Se =0 _ Fonte Excel) preciso verificar se tem Motivo de Ocorrência (Fonte Firebird), verificar o responsável e mostrar o total do OnTime, InFull e OTIF por responsável.

       

      Os campos "-Motivo-" e "-Responsável-" são campos calculados onde verifico onde tem valor em 4 campos de motivos, de acordo com a prioridade. Preciso usar alguma agregação por causa das duas fonte:

       

      Preciso mostrar como no modelo abaixo, mas por conta dos campos com agregações não sei como mostrar todas as "Áreas Responsáveis" sem mostrar o Cod do Pedido:

      Em anexo coloquei uma amostra dos dados que estou usando das duas fontes.

        • 1. Re: Cálculo de campos agregados
          Thales Bastos Donizeti Silva

          Olá Karenina, tudo bem?

           

          Nesse caso, se não for possível fazer o Join mesmo, você pode criar um grupo primário com os campos que você irá analisar e trazer pra fonte primária.

           

          Segue artigo explicando:

           

          Bring a Field into the Primary Data Source

           

          Tomei a liberdade de criar os grupos - Motivo da Ocorrência (FireBird) e Area Responsavel (Firebird) , conforme está na pasta de trabalho, e incluir todos valores de Outros como o grupo "Null".

           

          Aí alterei a fórmula para a seguinte:

          -Motivo-

          TRIM(IF NOT ISNULL ([Motivo da Devolução])

              THEN ([Motivo da Devolução])

           

           

          ELSEIF NOT [Motivo da Ocorrência (FireBird)] != "Null"

              THEN ([Motivo da Ocorrência (FireBird)])

           

           

          ELSEIF NOT ISNULL([Motivo de Alteração de Data])

              THEN ([Motivo de Alteração de Data])

           

           

          ELSEIF NOT ISNULL([Desc. Motivo da Recusa])

              THEN ([Desc. Motivo da Recusa])

           

           

          ELSE "-"

           

           

          END)

           

          -Area Responsavel-

          TRIM(IF NOT ISNULL([Motivo da Devolução])

              THEN ([Área responsável (Motivo Devolução)])

           

           

          ELSEIF [Motivo da Ocorrência (FireBird)] != "Null"

              THEN [Area Responsavel (Firebird)]

           

           

          ELSEIF NOT ISNULL([Motivo de Alteração de Data])

              THEN ([Área Responsável (Alteração Data)])

           

           

          ELSEIF NOT ISNULL([Desc. Motivo da Recusa])

              THEN ([Área responsável (Motivo da Recusa)])

           

           

          ELSE "-"

          END)

           

          Com isso, estes campos calculados se tornam dimensões e você consegue compará-los com sua medida %OTIF.

          Não sei se é bem isso que você quer, mas já é um caminho

           

          Qualquer dúvida é só falar.


          Abraços

          1 of 1 people found this helpful
          • 2. Re: Cálculo de campos agregados
            Luciano Vasconcelos

            Bom dia.

            Estava analisando seu painel mas como para obter as flags você faz cálculos fica difícil no Data Blend.

            Já ouviu falar de uma técnica chamada scaffolding?

            Basicamente você cria uma tabela de chaves para utilizar a esquerda e pendura as duas fatos nela forçando um union.

            Creio que isso ajudaria muito.

            • 3. Re: Cálculo de campos agregados
              Karenina Nobre

              Olá Thales Bastos Donizeti Silva, o resultado que preciso é exatamente o que você mostrou, mas me surgiu uma dúvida... quando entrar um pedido novo, ele vai entrar nesse grupo? Atualização vai ter que ser manual?

              • 4. Re: Cálculo de campos agregados
                Karenina Nobre

                Valeu Luciano Vasconcelos, vou pesquisar a respeito... Achei esse tópico aqui no forum Data Scaffolding in Tableau  com alguns links a respeito, mas como estou no cliente agora, não consigo acessar porque a internet bloqueia os blogs.

                • 5. Re: Cálculo de campos agregados
                  Thales Bastos Donizeti Silva

                  Então, quando um novo registro entrar, ele automaticamente irá para o grupo Outros (neste caso, "Null").

                  Infelizmente não há uma maneira de realizar um update dinâmico.

                  Será que não tem como vc fazer esse join das tabelas em outra ferramenta, e depois conectar no Tableau?

                  O Cross-DB Join no Tableau é meio chatinho mesmo..

                  Pelo que vi parecem ser poucos registros.

                  • 6. Re: Cálculo de campos agregados
                    Karenina Nobre

                    Obrigada Thales Bastos Donizeti Silva, mas dessa forma ainda não resolvi pra mim!

                    Todos os dias entram pedidos e eu preciso que sejam direcionados aos grupos corretos. Estou tentando alguma outra forma de mudar como o cálculo do OTIF, OnTime e InFull estão sendo feitos... mas não tenho muitas ideias.

                     

                    Ah, e sobre o volume de dados, fiz só uma pequena extração com poucas linhas, mas só de pedidos desse ano estamos perto de 100mil! Realmente teria que ser uma solução automática.