Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Filtros em Expressões e Dimensões

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!!

Labels (1)
28 Replies
cesaraccardi
Specialist
Specialist

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

Clever_Anjos
Employee
Employee

Count() resolveria?

nicolett_yuri

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).

Anonymous
Not applicable
Author

Não resolve Clever... Qdo for texto, preciso apresentar o texto, não contar... obrigado pela resposta.

nicolett_yuri

Detalhe quais são essas expressões para mostrarmos como colocar a condição

Anonymous
Not applicable
Author

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.

Anonymous
Not applicable
Author

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

Clever_Anjos
Employee
Employee

Only() se tiver apenas um valor

Concat() se tiver mais de um

nicolett_yuri

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