Qlik Community

Qlik Brasil

Welcome to the group for Brazil users. .All discussions will be in Portuguese.

williamjr
New Contributor II

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

Tags (1)
28 Replies
cesaraccardi
Valued Contributor

Re: Filtros em Expressões e Dimensões

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

Employee
Employee

Re: Filtros em Expressões e Dimensões

Count() resolveria?

Re: Filtros em Expressões e Dimensões

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

williamjr
New Contributor II

Re: Filtros em Expressões e Dimensões

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

Re: Filtros em Expressões e Dimensões

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

williamjr
New Contributor II

Re: Filtros em Expressões e Dimensões

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.

Highlighted
williamjr
New Contributor II

Re: Filtros em Expressões e Dimensões

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

Employee
Employee

Re: Filtros em Expressões e Dimensões

Only() se tiver apenas um valor

Concat() se tiver mais de um

Re: Filtros em Expressões e Dimensões

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