Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
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