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!!
monta o resultado que você gostaria de obter em um Excel e posta aqui por favor
Oi Clever,
O resultado do exemplo não está errado, só que nele existe uma definição para cada expressão.
O que eu quero saber é:
1 - Como fazer essa definição na dimensão (a ideia seria fazer apenas na dimensão e não ter que repetir toda aquela definição para as expressões)
2 - No meu exemplo fiz com sum, mas a dimensão, por exemplo, é uma data e não se aplica o sum.
Haverá casos onde será texto. Daí como fica?
3 - Mesmo nas expressões, o sum não ficará legal em outros casos, onde não posso somar porcentagens
Eu só estou fazendo assim porque foi o único jeito que encontrei de fazer o filtro com uma variável, usando essas condições que estão no exemplo.
É isso!
Deve ser a sexta-feira... não entendi realmente seu requerimento
Basicamente, fazer isso aqui funcionar para a dimensão BD_NN_REFERENCIA, que é uma data.
Acho que a partir disso eu resolvo o resto...
=if(GetSelectedCount(BD_NN_ANOMES) > 1,
if (Right(GetFieldSelections(BD_NN_ANOMES),7) > Text('$(vAnoMesAtual)'),
Sum({<BD_NN_ANOMES={'$(vAnoMesAtual)'}>}BD_NN_USED_REAL),
Sum(BD_NN_USED_REAL)
)
,
Sum({<BD_NN_ANOMES={'$(=if(GetSelectedCount(BD_NN_ANOMES) > 0,
if(GetFieldSelections(BD_NN_ANOMES) > Text('$(vAnoMesAtual)'),
Text('$(vAnoMesAtual)'),
GetFieldSelections(BD_NN_ANOMES)
),
Text('$(vAnoMesAtual)')
)
)'
}
>}
BD_NN_USED_REAL)
)
Penso que usando essa sintaxe na dimensão, talvez não precise repetir para as expressões.
Já conseguiu solucionar? Se sim, marque uma das respostas como "Correta" e nos ajude a manter os foruns organizados
Prezados
Boa noite.
Peguei carona no tópico pois estou atravessando o mesmo problema, preciso fixar seleção pelo set analysis, porém exibindo o valor original da dimensão (sem função ou cálculo), pelo que entendi não existe como usar a expressão com a seleção sem preceder uma função (sum, count e etc).
Vi fazerem menção sobre as funções concat() e only(), como um arranjo para replicar os valores originais e promover a seleção via expressão, é isso ?
Gratoo
Ola Sandro.
O set analysis so pode ser aplicado dentro de funcoes de agregacao: Sum, Count, Avg, Concat, Only, etc... Se voce pretende fixar uma selecao em uma tabela, ao filtrar as expressoes automaticamente estara filtrando as dimensoes (nao precisa adicionar o filtro nas dimensoes).
Abracos,
Cesar
Olá Cesar
Obrigado pela disponibilidade amigo.
Então, acho que não me fiz claro, peço desculpas. Quis dizer o seguinte, muitas vezes em lugar de uma função de agregação precisamos somente utilizar operadores chamando o próprio valor da dimensão ex: =(VLR_VENDA*.0.50), porém nos vem também em paralelo, a necessidade de que um grupo de seleções seja feita por traz dessa operação, entende ? ai fiz a pergunta de calouro, será que podemos por a seleção antes dessa operação {<1 dimensao={'"}>}
Sem problemas Sandro.
Acho que voce quis dizer o "proprio valor do campo", certo? Por que VLR_VENDA normalmente nao seria uma dimensao e sim uma medida. Quando voce usar o campo como medida em uma tabela ou grafico sempre utilizara uma agregacao: SUM(VLR_VENDA), no caso de querer multiplicar os valores individuais por 0.50 deve fazer dentro da agregacao: SUM(VLR_VENDA*0.50), ai nesse caso e so adicionar o set analysis para fixar as selecoes:
SUM({1<dimensao={""}>} VLR_VENDA*0.50)