2 Replies Latest reply: Oct 19, 2012 1:32 PM by eltoncsantana RSS

    Valor da coluna anterior utilizando Pivot com tabela dinamica

      Bom dia Pessoal,

       

      Criei uma tabela dinâmica utilizando a funcionalidade Pivot (As linhas são as colunas e as colunas as linhas). Para tanto, preciso pegar o valor da coluna anterior (Lembrando que a coluna é uma linha da tabela).

       

      Com a tabela simples utilizo a função Above() e funciona certinho, porem quando mudo para tabela dinâmica com o pivot ela não funciona.

      Obs. Que a colunacom % esta capturando o valor da linha anterior.

      Estou utilizando a seguinte expressão para pegar o valor da linha anterior: =IF(TIPOMOVIMENTO='VENDA' and (trim(Right(trim(DESCRIREP),1)) = '%'), Above(sum(QUANT)) , SUM( QUANT)   )

       

       

       

      Com a utilização do pivot fica assim

       

      Observe que a coluna com o % não esta trazendo valores

       

       

       

      Alguem teria alguma sugestão ?

      Grato desde já

        • Re: Valor da coluna anterior utilizando Pivot com tabela dinamica
          Aderlan Rodrigues

          Olá Elton,

           

          Se a intenção com o (trim(Right(trim(DESCRIREP),1)) = '%' é de "contém", recomendo:

          index(DESCRIREP,'%') > 0

           

          Se a coluna com % não traz valores, sempre será "falso" o resultado do IF, correto? Logo, nunca executará o Above, pois somente será "verdadeiro" quando as duas condições forem atendidas.

           

          Outro detalhe importante é se o DESCRIREP for uma expressão no gráfico, configurada na aba número ou nas propriedades for marcado como relativo, essa % só existe na "visão", não nos dados, então terá que fazer o calculo diretamente, não referencia uma expressão no objeto.

           

          Abraço.

            • Re: Valor da coluna anterior utilizando Pivot com tabela dinamica

              Olá Aderlan,

              Agradeço desde já a ajuda....

              Referente o DESCRIREP  a intenção é verificar se o ultimo caractere é igual a '%'. Para tanto, encontrei uma solução mais adequada, que foi acrescentar uma Flag na minha query. Para este item a verificação ficou assim: If(TRIM(TIPOMOVIMENTO) = 'PERCENT',1 ,2 )

               

              E para o problema citado, encontrei uma função para capturar o valor da coluna anterior. a função é a Before().

              Exemplo de como ficou a expressão para buscar o percentual:

              IF(TRIM(TIPOMOVIMENTO) = 'PERCENT',

                                       (Before(SUM(FORMULA_DA_LINHA_COLUNA_ANTERIOR) *100) / BEFORE(SUM(OUTRA_FORMULA_DA_LINHA_COLUNA_ANTERIOR))) ,

                                                   SUM(FORMULA_DA_COLUNA_PRINCIPAL))  

               

              Abraços

              E obrigado mais uma vez