12 Replies Latest reply: Jan 11, 2017 10:52 AM by Clever Anjos RSS

    Como localizar valores não selecionados de uma dimensão em outra (string)?

    Laryssa Alves

      Bom dia!

      Tenho a seguinte tabela:

       

      CidadeFilialAssuntoOrientação
      CuritibaAGILIDADEAgradecer elogio, e passar para superiores
      CuritibaAGILIDADERio de Janeiro: Agradecer contato, e informar retorno.
      São PauloAGILIDADESão Paulo: Agradecer elogio e informar aos superiores.
      São PauloAGILIDADECuritiba: Agradecer elogio e repassar ligação.
      Rio de JaneiroAGILIDADEAgradecer elogio, e passar para superiores
      Rio de JaneiroAGILIDADERio de Janeiro: Agradecer contato, e informar retorno.
      Rio de JaneiroAGILIDADESão Paulo: Agradecer elogio e informar aos superiores.

       

       

      O filtro foi : Assunto -> Agilidade, como podem ver, infelizmente os dados estão misturados, isso foi possivelmente um erro na população do BD, porém, eu não tenho acesso ao BD e gostaria de consertar isso no QlikView.

      Para cada assunto em cada cidade, existe apenas 1 orientação. E nessa orientação pode estar o nome da cidade ou não, ou a orientação de outra cidade.

      Tentei fazer uma dimensão calculada 'Orientação':

       

      =if(substringcount(upper(Orientacao),Trim({1-$}CidadeFilial))>0 ,null(), LTrim(PurgeChar(Orientacao,'&')))

       

      Ver se no campo orientação tem o nome de outra filial, sem ser a filial em questão... Se tiver, não aparecerá.

      Não deu certo, mas seria mais ou menos essa lógica, talvez. Como posso fazer? Vai em anexo essa tabela.

       

      Desde já, obrigada.

       

      ps: o ltrim, purgechar, trim foram usados pois esses campos precisavam ficar formatados.

        • Re: Como localizar valores não selecionados de uma dimensão em outra (string)?
          Clever Anjos

          Qual deve ser a regra? igual abaixo?

          1) Se não tive nome da cidade, vale essa

          2) Se tiver um nome de cidade, só vale se for igual ao CidadeFilial

           

          Ficaria assim o resultado final

          CidadeFilial Assunto Orientação
          CuritibaAGILIDADEAgradecer elogio, e passar para superiores
          Rio de JaneiroAGILIDADEAgradecer elogio, e passar para superiores
          São PauloAGILIDADEAgradecer elogio e informar aos superiores.

           

           

          Se for assim, use o script abaixo:

          Mapa:
          mapping LOAD * INLINE [
              F1, F2
              Curitiba,_cidade_
              São Paulo,_cidade_
              Rio de Janeiro,_cidade_
          ];
          
          LOAD CidadeFilial&'|'&CidadeFilial as FiltroDuplicados,
              CidadeFilial,
              Assunto,
              Orientação
          FROM [C:\tmp\ExemploQlikView.xlsx] (ooxml, embedded labels, table is Plan1)
          Where
            Index(MapSubString('Mapa',Orientação),'_cidade_')=0;
          LOAD CidadeFilial&'|'&CidadeFilial as FiltroDuplicados,
              CidadeFilial,
              Assunto,
              Trim(Replace(MapSubString('Mapa',Orientação),'_cidade_:','')) as Orientação
          FROM [C:\tmp\ExemploQlikView.xlsx] (ooxml, embedded labels, table is Plan1)
          Where
            Index(MapSubString('Mapa',Orientação),'_cidade_')>0 and SubField(Orientação,':',1) = CidadeFilial
            and not Exists(FiltroDuplicados,CidadeFilial&'|'&CidadeFilial);
          
            • Re: Como localizar valores não selecionados de uma dimensão em outra (string)?
              Laryssa Alves

              Olá! Agradeço pela resposta!

              Mas a tabela teria que ficar assim:

               

              CidadeFilialAssuntoOrientação
              CuritibaAGILIDADEAgradecer elogio, e passar para superiores
              São PauloAGILIDADESão Paulo: Agradecer elogio e informar aos superiores.
              Rio de JaneiroAGILIDADERio de Janeiro: Agradecer contato, e informar retorno.

               

               

              No caso de SP e RJ, tinha orientação apontando o nome da filial, então usaria estas. Mas por exemplo, em Curitiba tinha uma orientação do Rio de Janeiro e outra sem nenhum nome de cidade, então usaria esta ultima opção...

               

              Grata!

                • Re: Como localizar valores não selecionados de uma dimensão em outra (string)?
                  Clever Anjos

                  Só inverter as cargas então

                  LOAD CidadeFilial&'|'&CidadeFilial as FiltroDuplicados,

                       CidadeFilial,

                       Assunto,

                       Orientação

                  FROM [C:\tmp\ExemploQlikView.xlsx] (ooxml, embedded labels, table is Plan1)

                  Where

                    Index(MapSubString('Mapa',Orientação),'_cidade_')>0 and SubField(Orientação,':',1) = CidadeFilial;

                  LOAD CidadeFilial&'|'&CidadeFilial as FiltroDuplicados,

                       CidadeFilial,

                       Assunto,

                       Trim(Replace(MapSubString('Mapa',Orientação),'_cidade_:','')) as Orientação

                  FROM [C:\tmp\ExemploQlikView.xlsx] (ooxml, embedded labels, table is Plan1)

                  Where

                    Index(MapSubString('Mapa',Orientação),'_cidade_')=0

                    and not Exists(FiltroDuplicados,CidadeFilial&'|'&CidadeFilial);

                    • Re: Como localizar valores não selecionados de uma dimensão em outra (string)?
                      Laryssa Alves

                      Bom dia, Clever!

                      Perdão, mas como assim inverter as cargas?

                      Fiz exatamente desse ultimo jeito que você me mandou, a pedido da empresa, tive que colocar mais campos. Isso também influenciou no resultado, mas ficou assim (sem ocultar valores nulos em Filtros Duplicados, para ver o que houve):

                       

                      FILTROS:

                      *EMPRESA -> EMPRESA-RIO DE JANEIRO

                      *ASSUNTO -> AGILIDADE

                       

                              exemplo:

                      EmpresaCidadeFilialManifestaçãoGrupoAssuntoAssuntoOrientaçãoProcedimentoFiltrosDuplicados
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOATENDIMENTOAGILIDADEATENDIMENTO: AGRADECER ELOGIO, E INFORMAR QUE SERÁ REPASSADO AOS SUPERIORES DE SÃO PAULO.OUVIR RELATO E COMENTAR.RIO DE JANEIRO|RIO DE JANEIRO
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOATENDIMENTOAGILIDADEATENDIMENTO: AGRADECER CONTATO E FALAR SOBRE RETORNO. RIO DE JANEIRO: O MESMO QUE ATENDIMENTO       ATENDIMENTO: OUVIR RELATO E COMENTAR. RIO DE JANEIRO: O MESMO QUE ATENDIMENTO-
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOATENDIMENTOAGILIDADEREALIZAR SAUDAÇÃO E INFORMAR QUE LIGAÇÃO ESTA SENDO GRAVADA.OUVIR RELATO E COMENTAR. INFORMAR AOS SUPERIORES-
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOEQUIPEAGILIDADEATENDIMENTO: AGRADECER CONTATO E FALAR SOBRE RETORNO. RIO DE JANEIRO: O MESMO QUE ATENDIMENTO       ATENDIMENTO: OUVIR RELATO E COMENTAR. RIO DE JANEIRO: O MESMO QUE ATENDIMENTO-
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOEQUIPEAGILIDADEATENDIMENTO: AGRADECER ELOGIO, E INFORMAR QUE SERÁ REPASSADO AOS SUPERIORESOUVIR RELATO E COMENTAR.-
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOOPERACIONALAGILIDADECURITIBA: REALIZAR SAUDAÇÃO E INFORMAR QUE LIGAÇÃO ESTA SENDO GRAVADAOUVIR RELATO E COMENTAR.-
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOOPERACIONALAGILIDADEATENDIMENTO: AGRADECER CONTATO E FALAR SOBRE RETORNO. RIO DE JANEIRO: O MESMO QUE ATENDIMENTO       ATENDIMENTO: OUVIR RELATO E COMENTAR. RIO DE JANEIRO: O MESMO QUE ATENDIMENTO-

                            

                      Teria que ficar assim (ocultado valores nulos em Filtros Duplicados):

                       

                              exemplo:

                      EmpresaCidadeFilialManifestaçãoGrupoAssuntoAssuntoOrientaçãoProcedimentoFiltrosDuplicados
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOATENDIMENTOAGILIDADEATENDIMENTO: AGRADECER CONTATO E FALAR SOBRE RETORNO. RIO DE JANEIRO: O MESMO QUE ATENDIMENTO       ATENDIMENTO: OUVIR RELATO E COMENTAR. RIO DE JANEIRO: O MESMO QUE ATENDIMENTORIO DE JANEIRO|RIO DE JANEIRO
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOEQUIPEAGILIDADEATENDIMENTO: AGRADECER CONTATO E FALAR SOBRE RETORNO. RIO DE JANEIRO: O MESMO QUE ATENDIMENTO       ATENDIMENTO: OUVIR RELATO E COMENTAR. RIO DE JANEIRO: O MESMO QUE ATENDIMENTORIO DE JANEIRO|RIO DE JANEIRO
                      EMPRESA-RIO DE JANEIRORIO DE JANEIROELOGIOOPERACIONALAGILIDADEATENDIMENTO: AGRADECER CONTATO E FALAR SOBRE RETORNO. RIO DE JANEIRO: O MESMO QUE ATENDIMENTO       ATENDIMENTO: OUVIR RELATO E COMENTAR. RIO DE JANEIRO: O MESMO QUE ATENDIMENTORIO DE JANEIRO|RIO DE JANEIRO

                       

                       

                      Ocorreu como no resultado da tabela que você me mandou... Ele não pegou a informação do Rio de Janeiro mesmo.

                      Já tentei arrumar isso, mas não consegui. Mas agradeço desde já!

                       

                       

                      obs: a tabela é fictícia, mas tem exatamente esses campos e apresenta resultados parecidos em esses... Infelizmente não posso postar o qvw, mas o problema é esse mesmo com o expliquei no post principal.

                  • Re: Como localizar valores não selecionados de uma dimensão em outra (string)?
                    MARIO SOARES

                    cleveranjos, como você adiciona esta área de código?

                    Você monta direto no modo HTML ou algum outro macete?