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.

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

Highlighted

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