9 Replies Latest reply: Jun 15, 2015 10:33 AM by Yuri Nicolett RSS

    Trocar Letras por palavras?

    Filipe Mattos Kuhn

      Olá pessoal, tudo bem? Tenho uma dúvida...

      Tenho uma tabela, com diversos dados, do tipo:

      Header 1Header 2Header 3Header 4
      Cliente xpeçaB1
      Cliente ypeçaA3
      Cliente zmaquinaC1

       

       

      Gostaria de atribuir palavras para substituir as letras e Números das colunas 3 e 4.

      Exemplo. B = Chamado concluido
                     A = Em Andamento

       

                     1 = Faturado

                     3 = Em espera..

       

      e assim por diante. tenho várias tabelas que não tenho como vincular nomes. Sei para que serve, mas o sistema trata apenas por códigos. Gostaria de apresentar nos relatórios e gráficos de uma maneira mais amigável.

      Tem como fazer isto?

       

      Abraço a todos!

        • Re: Trocar Letras por palavras?
          Raphael Pacheco

          Olá Filipe.

           

          Para fazer isto, primeiro crie uma tabela utilizando o comando Mapping Load a partir de uma tabela, ou arquivo xls, ou até mesmo in line.

          Ex:

           

          [De, Para]:

          Mapping Load * inline [

          De, Para

          A, Em Andamento

          B, Chamado Concluido

          C, Outros

          1, Faturado

          3, Em Espera

          ];

           

          Depois em sua tabela de dados vc inclui o comando:

          ApplyMap('De, Para', [Header 3]) as [New Header 3],

          ApplyMap('De, Para', [Header 4]) as [New Header 4],

           

          Este comando basicamente trocará o índice informado no campo [Header 3] pelo valor existente na tabela mapping.

           

          Bom, espero ter ajudado!

          • Re: Trocar Letras por palavras?
            Yuri Nicolett

            Sim Filipe, você pode usar uma Mapping Table, essa tabela faz um DE/PARA de seus dados.

             

            Vamos ao exemplo:

             

            DescricaoHeader

            Mapping LOAD * INLINE [

            DE, PARA

            A, Descricao1

            B, Descricao2

            C, Descricao3

            ];

             

            Em sua tabela que possui a coluna Header, faça assim:

             

            ApplyMap('DescricaoHeader', [Header 3], 'Não Encontrado') as DescricaoHeader

             

            Explicando os parâmetros do ApplyMap

            'DescricaoHeader' = Nome da tabela de mapeamento

            [Header 3] = Nome da coluna que sofrerá o DE/PARA

            'Não Encontrado' = Caso a condição não seja atendida, ou seja, existe um valor que não esta na sua tabela de De/para, então essa linha ficará com o Valor 'Não Encontrado'

            • Re: Trocar Letras por palavras?
              Filipe Mattos Kuhn

              Boa tarde a todos! Pois bem, tentei executar a funções que foi passada, mas o que acontece, é que eu talvez não tenha entendido o procedimento.

              Yuri, eu preciso criar uma tabela real, em .xls para fazer este mapeamento, ou somente crio um script no carregamento de dados e coloco o Mapping?

              E na tabela onde eu quero fazer a troca, onde eu coloco o código do ApplyMap? Tentei em vários locais, mas da erro. tenho da seguinte forma montado: OBS: se eu não por "," no fim do código ele apresenta erro e nem continua o carregamento.

              Screen Shot 06-12-15 at 02.29 PM.PNG

              Screen Shot 06-12-15 at 02.32 PM.PNG

                • Re: Trocar Letras por palavras?
                  Yuri Nicolett

                  Filipe, pode ser feito via LOAD INLINE (Criação de uma tabela pelo próprio QlikView) ou por planilha excel, tabela de banco etc.

                   

                  A tabela de mapping precisa ter somente duas colunas, sendo a primeira o "De" (origem) e a segunda o "Para" (destino).

                  Lembre-se de colocar o nome da tabela! Este é necessário para indicar qual a tabela de mapping vai utilizar no ApplyMap.

                   

                  Olhando a imagem me parece que você esqueceu de colocar o nome da tabela de mapping e faltou uma virgula após finalizar o comando ApplyMap.

                    • Re: Trocar Letras por palavras?
                      Filipe Mattos Kuhn

                      Bhaaa Yuri.. cara.. entendi só agora. Eu estava apanhando aqui. O que aconteceu é o seguinte:

                       

                      Eu fiz todo o procedimento correto, só que eu ficava testando a "troca" do "código" pela palavra que eu escolhia na tabela de origem!! Mas o que acontece é que o "Mapping LOAD" gera a própria tabela, e lá que eu vou encontrar a coluna original com o código e a mesma já com as palavras que eu determinei trocar.

                      Agora sim, compreendi. Testei tbm utilizando

                      LOAD *inline tbm funciona

                       

                      Só um detalhe trocar o vermelho, pelo nome da caoluna que vc criou la no mapping

                      ApplyMap('DescricaoHeader', [Header 3], 'Não Encontrado') as DescricaoHeader

                       

                      Valeu, e obrigado pelas dicas!