Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
roberto_ntws
Contributor II
Contributor II

É possível armazenar "vários" valores em uma variável e depois realizar cálculos com estes valores?

Boa tarde.

Estou com uma demanda que envolvem valores financeiros e da forma como desenvolvi, o usuário é obrigado a selecionar os meses do ano para ver os índices, porém, para alguns dos índices, preciso pegar a quantidade de dias do mês e através dele fazer cálculos. A dificuldade surge no momento em que o usuário seleciona mais de um mês, onde minha aplicação deve "somar" o número total de dias de cada mês.

É possível armazenar "vários" valores em uma variável e depois realizar cálculos com estes valores?

Ou de repente exista algum comando no QlikView que facilite este processo e que eu desconheça?

Agradeço a atenção de todos.

Atenciosamente.

Labels (1)
1 Solution

Accepted Solutions
roberto_ntws
Contributor II
Contributor II
Author

Bom dia Amigos.

Gostaria de agradecer a ajuda de vocês, mas acabei fazendo uma junção das ideias do Egnaldo e do Felipe e adequei conforme a minha necessidade.

Através da sua ideia Felipe, pelo fato de existirem muitos registros com as "DataMovimento", ao fazer o Sum, ele trazia um valor irreal, o que de fato não resolveria meu problema. Para sanar meu problema, acabei criando uma variável com a seguinte expressão:

=Round(MonthEnd(MAX(DataMovimento)) - Date(Min({$<Mes={'jan'}>}DataMovimento)))

Desta forma eu consigo pegar o total de dias decorridos durante o ano, dependendo do mês que eu selecione, o que era a ideia original, mas que eu não soube expressar na pergunta que fiz no post.

Agradeço imensamente a ajuda de vocês.

Abraços.

Roberto Guilherme Gomes

View solution in original post

7 Replies
Anonymous
Not applicable

Para armazenar um valor em uma variável e utilizar em um objeto, vc pode trabalhar da seguinte forma:

Crie uma variável >>> vContarMes

Dentro dela digite sua formula, exemplo >>> Count(Distinct ColunaMes)

Em um objeto de Texto vc chama a variável >>> =$(vContarMes)

O resultado será apresentado.

Agora preciso entender melhor sua necessidade para tentarmos chegar em um resultado.

joao_sp_campina
Creator II
Creator II

Boa tarde Roberto,

Poderia passar o modelo de seus dados para eu entender melhor a sua necessidade.

Att,

      João Carlos Ferreira.

roberto_ntws
Contributor II
Contributor II
Author

Pessoal,

Segue uma simulação do que preciso.

Preciso que a quantidade de dias de cada mês seja acumulada de acordo com os meses que o usuário selecionar.

Obrigado!

Atenciosamente.

roberto_ntws
Contributor II
Contributor II
Author

Obrigado Egnaldo, mas somente isto não resolveria meu problema.
Anexei uma aplicação simulando o problema. Acredito que fique mais fácil de entender a minha dificuldade.

Obrigado amigo.

Anonymous
Not applicable

Não sei se isso ajuda mas é uma possibilidade.

felipe_dutra
Partner - Creator
Partner - Creator

Roberto,

Você pode usar a seguinte expressão:

Sum(Aggr(Round(MonthEnd(Min(DataMovimento))-MonthStart(Min(DataMovimento))), Ano, Mes))

Mas sugiro que você faça esse cálculo no script para não afetar o desempenho de sua aplicação.

Na leitura da tabela Balancete adicione o a linha a seguir:

MonthName(DataMovimento) as MesAno

e após a leitura da tabela balancete, adicione o seguinte código:

QtdeDias:

LOAD Distinct

MesAno,

Round(MonthEnd(MakeDate(Ano, Mes))-MonthStart(MakeDate(Ano, Mes))) as QtdeDiasMes

Resident Balancete;

Assim, no layout você poderá usar uma soma simples para chegar à quantidade de dias dos meses selecionados:

Sum(QtdeDiasMes)

Abs,

Felipe

roberto_ntws
Contributor II
Contributor II
Author

Bom dia Amigos.

Gostaria de agradecer a ajuda de vocês, mas acabei fazendo uma junção das ideias do Egnaldo e do Felipe e adequei conforme a minha necessidade.

Através da sua ideia Felipe, pelo fato de existirem muitos registros com as "DataMovimento", ao fazer o Sum, ele trazia um valor irreal, o que de fato não resolveria meu problema. Para sanar meu problema, acabei criando uma variável com a seguinte expressão:

=Round(MonthEnd(MAX(DataMovimento)) - Date(Min({$<Mes={'jan'}>}DataMovimento)))

Desta forma eu consigo pegar o total de dias decorridos durante o ano, dependendo do mês que eu selecione, o que era a ideia original, mas que eu não soube expressar na pergunta que fiz no post.

Agradeço imensamente a ajuda de vocês.

Abraços.

Roberto Guilherme Gomes