Skip to main content
Announcements
See why Qlik was named a Leader in the 2024 Gartner® Magic Quadrant™ for Data Integration Tools for the ninth year in a row: Get the report
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Tabela Simples

boa tarde a todos !!

Achei muito interessante a dica que Pablo Labbe deu no post de Hamilton sobre desempenho. Mas ao tentar aplicar em minha realidade não consegui. Gostaria de uma ajuda.

A situação é a seguinte, eu havia colocado as variáveis, que contem as expressões, dentro dos objeto de texto,

para criar um quadro com o resumo, semelhante ao que o Hamilton apresentou logo acima. Mas isso deixou a performance muito lenta, pois utilizo vários objetos de texto. Com isso estou substituindo esses objetos de texto por tabelas.

Criei uma tabela, load inline, com o campo MenuResumo, onde tem as Dimensão que preciso utilizar.

img04.png

img01.png

Expressão: Com Variável

img02.png

Expressão: Sem Variável

img03.png

Se percebermos na segunda imagem, quando coloco a expressão ele só calcula para a 1ª dimensão (coluna da esquerda), se coloco o texto (coluna da direita) ele informa para as três dimensões.

O que pode esta ocorrendo ? O que devo corrigi ?

Labels (2)
1 Solution

Accepted Solutions
pablolabbe
Luminary Alumni
Luminary Alumni

Thiago,

Achei este post do Hamilton que passou por problema semelhante. aggr( em Gráfico com ValueList(

segundo a dica do Yuri, falta adicionar a coluna da dimensão MenuResumo no AGGR de cada expressão, então creio que  a expressão ficaria assim

sum( {< [Tipo Curso] = {">0<5"}, IsInYTD = {1}, IsInAnoAtual = {1}, Ano = {$(=Year(Today()))}, Mês = , Dia = >} aggr( avg(VALORORIG_MATRICULA), IDLAN, IDCOLIGFIL, MenuResumo ))



View solution in original post

10 Replies
lucianosv
Specialist
Specialist

Não sei se é isso, mas na primeira você usa wildmatch e na segunda match.

Testa com match na primeira.

Anonymous
Not applicable
Author

Luciano, boa noite,

Usei o match() e ficou da mesma forma, só calcula para o primeiro, os outros dois ficam zerados.

lucianosv
Specialist
Specialist

Faz um teste usando If.

pablolabbe
Luminary Alumni
Luminary Alumni

Thiago,

  Pode ser um problema na expressão que você armazena dentro da variável. Veja se não falta um parenteses.

Abraço,

Pablo

pablolabbe
Luminary Alumni
Luminary Alumni

parece que o problema está relacionado ao uso da função AGGR, Achei este post com problema similar.

AGGR function returns value only on first row of chart

pablolabbe
Luminary Alumni
Luminary Alumni

e tem este outro post aqui.

Re: Pick match aggr challenge part 3!!

Anonymous
Not applicable
Author

Pablo,

Obrigado, resolveu o problema.

Tive que adicionar o NODISTINCT dentro da função AGGR.

Anonymous
Not applicable
Author

Resolveu em partes.

O problema da apresentação no gráfico resolveu, mas o valor apresentado está dando diferença.

Eu preciso agrupar os distintos.

Se faço assim:

sum( {< [Tipo Curso] = {">0<5"}, IsInYTD = {1}, IsInAnoAtual = {1}, Ano = {$(=Year(Today()))}, Mês = , Dia = >} aggr( avg(VALORORIG_MATRICULA), IDLAN, IDCOLIGFIL ))


Só calcula a primeira.

Se adiciono o NODISTINCT:

sum( {< [Tipo Curso] = {">0<5"}, IsInYTD = {1}, IsInAnoAtual = {1}, Ano = {$(=Year(Today()))}, Mês = , Dia = >} aggr( NODISTINCT avg(VALORORIG_MATRICULA), IDLAN, IDCOLIGFIL ))


O valor não é o real.


Você teria alguma outra solução para montar esta tabela ?


pablolabbe
Luminary Alumni
Luminary Alumni

Thiago,

Achei este post do Hamilton que passou por problema semelhante. aggr( em Gráfico com ValueList(

segundo a dica do Yuri, falta adicionar a coluna da dimensão MenuResumo no AGGR de cada expressão, então creio que  a expressão ficaria assim

sum( {< [Tipo Curso] = {">0<5"}, IsInYTD = {1}, IsInAnoAtual = {1}, Ano = {$(=Year(Today()))}, Mês = , Dia = >} aggr( avg(VALORORIG_MATRICULA), IDLAN, IDCOLIGFIL, MenuResumo ))