13 Replies Latest reply: Dec 23, 2010 12:21 PM by Mark Costa RSS

    Expressão como Dimensão

      Boa tarde,

      Gostaria de saber se é possível transformar uma expressão em uma dimensão de um gráfico.

      Tipo agrupar uma expressão e transforma-la em dimensão.

      Por exemplo, imaginem uma tabela simples de vendas: Cliente, Periodo e Valor de Vendas.

      Gostaria de contar a qtd de clientes agrupados pelo valor, onde as dimensões seriam:

      Valor de Vendas até 10K,

      Valor de Vendas até 20K,

      Valor de Vendas até 30K

      Valor de Vendas acima de 30K

      Este é somente um exemplo simplificado, pois a expressao que tenho atual não é possivel transforma-la em dimensão no momento do script, pois um dos pontos, é que ela deve ser dinamica conforme as seleções.

      É possível? Tentei com a expressão calculada e não deu certo.

        • Expressão como Dimensão

          Sim é possível,

           

          Para isso você usará a função Class ()

          class( expressão, intervalo [ , rótulo [ , deslocamento ]] )

           

          Cria uma classificação de expressões. A largura da caixa é determinada pelo número definido como intervalo. O resultado é mostrado como a<=x<b, em que a e b são os limites superior e inferior da caixa. O x pode ser substituído por um caracter arbitrário definido em rótulo. 0 normalmente é o ponto de partida padrão da classificação. Isso pode ser alterado incluindo um offset.

          Exemplos:

          class( var,10) with var = 23 retorna '20<=x<30'

          class( var,5,'value') with var = 23 retorna '20<= value <25'

          class(var,10,'x',5) with var = 23 retorna '15<=x<25'



          • Expressão como Dimensão

            Bom Dia,

            Tente desta forma:

            Supondo que seus dados estejam pareceidos como este exemplo:

            TEMP:

            LOAD * INLINE [
            Cliente, Periodo, Vendas
            A, 01/12/2010, 15000
            B, 01/12/2010, 18000
            A, 04/12/2010, 23000
            D, 01/12/2010, 33000
            E, 01/12/2010, 28000
            B, 05/12/2010, 12000
            G, 01/12/2010, 8000
            C, 08/12/2010, 4000
            I, 01/12/2010, 21000
            ];

            A sua dimensão calculada seria:

            =IF(AGGR(SUM(Vendas), Cliente) <= 10000, 'até 10k',
            IF(AGGR(SUM(Vendas), Cliente) <= 20000, 'até 20k',
            IF(AGGR(SUM(Vendas), Cliente) <= 30000, 'até 30k',
            IF(AGGR(SUM(Vendas), Cliente) > 30000, 'acima de 30k'))))

            E a sua expressão:

            COUNT(DISTINCT Cliente)

            • Expressão como Dimensão
              Mark Costa

              Não vejo porque mirabolar uma Dimension como essa sendo que poderiam ser Expressions. Lembre-se que Dimensions com Expressions tem um custo alto no processamento e devem ser evitadas.

              Você poderia fazer um Straight Chart com o Período como Dimension e com várias Expressions, sendo cada Expression com a agregação que você quer fazer.

              Caso você não queira usar nenhuma Dimension, você pode tentar algum tipo de Gauge Chart ou mesmo colocar caixas de textos na sua sua Sheet com essas informações.

              Nota: use Set Analysis nas suas Expressions ao invés de IFs caso você tenta uma dessas alternativas.

                • Expressão como Dimensão

                  Mark, é necessário sim o aggr para eu poder agrupar por uma dimensão, no caso produto, pois não vou ter mais nenhuma outra dimensão no gráfico, assim minha dimensão calculada retornaria somente o valor global da seleção atual.

                  E não poderia ser somente em expressão senão não teria o resultado abaixo. Minha expressão é o % de vendas.

                  Quanto aos IFs serem com set analysis, sim, perfeito.

                  Abraços e obrigado

                    • Expressão como Dimensão
                      Mark Costa

                       

                      Uma outra forma de fazer o mesmo chart seria criar um Bar Chart sem Dimension - é, isso é estranho - com a configuração abaixo:

                      1 - Criar Bar Chart sem Dimension
                      2 - Adicionar uma Expression pra cada categoria, sendo que a formula seria aproximadamente:

                      Count({<$(V_IDADE) = {"<=12"}>} TOTAL <PRODUTO> ContadorDeVenda)/Count(ContadorDeVenda)

                      Count({<$(V_IDADE) = {"<=24"}>} TOTAL <PRODUTO> ContadorDeVenda)/Count(ContadorDeVenda)

                      Count({<$(V_IDADE) = {"<=36"}>} TOTAL <PRODUTO> ContadorDeVenda)/Count(ContadorDeVenda)

                      Count({<$(V_IDADE) = {">36"}>} TOTAL <PRODUTO> ContadorDeVenda)/Count(ContadorDeVenda)

                      3 - Ir na aba Number do Bar Chart e configurar a formatação dos números para exibir como %

                       

                      Nota 1: nesse caso eu acho que não precisa usar o TOTAL <PRODUTO> mas eu teria que testar pra ter certeza.
                      Nota 2: eu não sei o campo que você está utilizando para contar as vendas, no meu caso eu coloquei o pseudo campo ContadorDeVenda.

                       

                      Abraço