Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia,
Eu tenho um gráfico com saída em Tabela Dinâmica.
Há uma coluna de Dimensão que é data.
Há várias colunas como Expressões. Umas números inteiros, outras valores, datas e texto.
Existe um outro objeto Lista, com várias datas.
Dependendo da data selecionada na lista, tenho que fazer alguns filtros diferenciados na Tabela Dinâmica.
Diante disso, criei uma expressão:
=if (CONDICAO,
Sum({<ANOMES={'$(vAnoMesAtual)'}>}NUMERO),
Sum(NUMERO)
)
Ou seja, dependendo da data selecionada na Lista, eu filtro apenas o Ano/Mês atual na Tabela.
Até aí tudo bem, funciona corretamente.
O problema é que em algumas colunas o conteúdo não é numérico e sim TEXTO ou DATA. Daí não posso usar o SUM.
Verifiquei as funções e nenhuma pareceu ser apropriada para texto ou data.
Na verdade eu nem precisaria usar o SUM, mas tenho que fazer esse filtro {<ANOMES={'$(vAnoMesAtual)'}>}
dependendo da data que for selecionada na lista. Não sei fazer de outra forma.
Perguntas:
1 - Há como fazer esse filtro, de acordo com a CONDICAO, sem usar SUM ou usando alguma outra função?
2 - Preciso fazer essa expressão para todas as colunas?
3 - Tem como fazer isso na Dimensão, para não ter que repetir a fórmula em todas as Expressões?
Obrigado!!
Ola Will,
Respondendo as suas perguntas...
Perguntas:
1 - Há como fazer esse filtro, de acordo com a CONDICAO, sem usar SUM ou usando alguma outra função?
2 - Preciso fazer essa expressão para todas as colunas?
3 - Tem como fazer isso na Dimensão, para não ter que repetir a fórmula em todas as Expressões?
1 - Sim, para usar o set analysis voce nao necessita utilizar somente SUM(), se deseja agregar texto dependendo da forma como deseja agregar a informacao pode usar funcoes como Only() se todos os valores forem iguais para a selecao / dimensoes existentes na tabela dinamica ou outras funcoes como Maxstring() por exemplo.
2 - Eu acho que esta seja a melhor forma de implementar apesar de ser trabalhosa.
3 - Acredito que nao e possivel fazer isso na dimensao.
Abracos,
Ceasr
Count() resolveria?
Apenas para complementar a resposta da questão 3, sim é possível fazer na dimensão, mas não se deve fazer devido a performance (melhores práticas).
Não resolve Clever... Qdo for texto, preciso apresentar o texto, não contar... obrigado pela resposta.
Detalhe quais são essas expressões para mostrarmos como colocar a condição
Pensei em usar o Only, mas não tenho muita familiariadade com essa função, o help não ajudou muito e fiquei com um pouco de receio... Será que ela funciona bem nesse caso e trará todas as ocorrências de texto?
O Help diz:
Se a expressão sobre um número de registros, definido por uma cláusula group by, contiver apenas um valor numérico, esse valor será retornado. Caso contrário, retornará NULL.
Eu não sabia disso, sobre a performance... em todo caso, se houver uma opção eu gostaria de usar, pois o volume de informação é muito pequeno e a performance acredito que não será comprometida.
Eu fiz uma expressão com o SUM sobre valores numéricos na expressão, conforme indicado no início. Repeti a mesma expressão na Dimensão, mas não funcionou... fiquei sem entender porque
Only() se tiver apenas um valor
Concat() se tiver mais de um
Você precisa detalhar o que quer fazer para conseguir montar a expressão.
Se possível coloque um qvw com um exemplo de seus dados