Qlik Community

Brasil

Announcements
June 28, 10AM ET: Qlik Nation and Qlik Community present: CyberSleuth REGISTER TODAY
cancel
Showing results for 
Search instead for 
Did you mean: 
andrecojel
Creator
Creator

Porque quando carrego uma variável numa coluna, todos os valores ficam iguais?

Bom dia.

Tenho notado, que todas as vezes que vou criar uma tabela, e que nesta, quando chamo uma variável, os valores se repetem em todas as linhas.

O que seria isso? Porque?  E claro, o de sempre, rs, como resolvo?

Exemplo.

tenho uma tabela simples (ou dinâmica, tanto faz), com campos FUNCIONÁRIO como dimensão, e na expressão faço um cálculo de duas variáveis (PROVENTOS-DESCONTOS), e a chamo de VALOR LÍQUIDO.

Estas variáveis, são compostas por diversos eventos de folha de pagamento....

Exemplo fictício: Variável PROVENTOS tem em seu conteúdo todos os eventos da folha de pagamento, que são de recebimentos e a de DESCONTOS, carrega todos os eventos que são de descontos.

Quando carrego em objeto de texto, fica legal, mostra o valor correto, mas nas tabelas, sempre aparece uma soma geral, em todas as linhas, mais ou menos assim:

FUNCIONARIO - VALOR LÍQUIDO

MARCOS FRANCO - 741.758,44

ANDRE FERREIRA - 741.758,44

FRANCO FERREIRA - 741.758,44

Vocês podem me orientar quanto a isso?

Desde já, muito obrigado.

Estejam todos na paz do Senhor.

Marcos.

1 Solution

Accepted Solutions
rvsilvestre
Creator III
Creator III

Boa tarde,

cara tem um pequeno detalhe que faz toda a diferença, se vc tem um expressão la, sum(vendas) na variavel, se voce colocar:

=sum(vendas)

o Qlik vai fazer esse cálculo fora de qualquer objeto e apenas atribuir o valor nos objetos, por isso o mesmo valor para todas as linhas. Agora se vc colocar apenas:

sum(vendas)

ele irá guardar na variável a expressão e não o resultado dela, e quando você chamar essa variável em algum objeto , ele vai jogar a expressão la, em vez de jogar apenas os valores.

View solution in original post

7 Replies
julianacampag
Creator
Creator

Olá Marcos,

utilize a variável assim

$(vTeste)

Quando você utiliza assim, é como se fosse feito o cálculo novamente para todas as linhas da sua tabela.

Acho que isso resolverá o seu problema.

andrecojel
Creator
Creator
Author

Olá Juliana, obrigado pela ajuda.

Mas quando faço assim, se quer a coluna é preenchida.... Os resultados somem (lista), e mostra apenas o total, é como se eu quisesse, desta forma, trazer apenas o total.

Estranho né?

Mas obrigado.

Marcos.

rvsilvestre
Creator III
Creator III

Boa tarde,

cara tem um pequeno detalhe que faz toda a diferença, se vc tem um expressão la, sum(vendas) na variavel, se voce colocar:

=sum(vendas)

o Qlik vai fazer esse cálculo fora de qualquer objeto e apenas atribuir o valor nos objetos, por isso o mesmo valor para todas as linhas. Agora se vc colocar apenas:

sum(vendas)

ele irá guardar na variável a expressão e não o resultado dela, e quando você chamar essa variável em algum objeto , ele vai jogar a expressão la, em vez de jogar apenas os valores.

junior_ehlke
Creator III
Creator III

Boa tarde, tanto a resposta da Juliana quanto do Rodrigo estão corretas, você deve usar as duas formas para que o cálculo da variável possa ser feito nas dimensões da sua tabela.

na variável você coloca a conta sem o igual "=" apenas o sum(vendas) e na sua tabela você coloca =$(var_Vendas)

porém deve tomar cuidado, pois se não colocar o $ na frente da variável, ela assume como um campo texto no seu gráfico.

andrecojel
Creator
Creator
Author

Boa tarde...

Rodrigo, fiz da forma que vc sugere, deu certo, não sei é claro, se fiz da melhor forma...

Hamilton, obrigado por seu esclarecimento.

Tabela simples:

Dimensão: Funcionários

Expressões:

=sum( {$<CS_TIPO_EVENTO = {"4"}>} VL_EVENTO ) // 1ª Coluna, Proventos

=sum( {$<CS_TIPO_EVENTO = {"1"}>} VL_EVENTO ) // 2ª Voluna, Descontos

=(colunm(1)-colunm(2)) // Resultado desejado, ok.

Se eu soubesse juntar as colunas 1 e 2 (no setAnalisys), não precisaria da coluna que subtrai as duas anteriores, mas sinceramente, não consegui, apesar das diversas tentativas.

Se houver uma dica, ficarei grato, mas de antemão, funcionou, e agradeço demais a ajuda de sempre.

Marcos.

junior_ehlke
Creator III
Creator III

Acho que é mais simples do que você imagina, joga no setAnalisys assim:

=sum( {$<CS_TIPO_EVENTO = {"4"}>} VL_EVENTO )

-

sum( {$<CS_TIPO_EVENTO = {"1"}>} VL_EVENTO )

andrecojel
Creator
Creator
Author

Hamilton, cara, tenho que rir, realmente muito tranquilo, show cara, muito obrigado.

Já desfiz a forma anterior, ficou bem melhor assim.

Obrigado.