Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
RafaMartins
Creator II
Creator II

Calculo de valor com base na data atual.

Bom dia,

Estou com uma duvida em como realizar uma soma de valores até a data com today(-1)

em meus dados possuo os campos Ano, data, filial e flag(dias uteis 1 ou 0)

a conta que estou tentando fazer é somar os dias  uteis de cada ano considerando a filial e a data atual, ou seja para 2015,2016,2017,2018 pegar os dias uteis totais enquanto 2019 deverá considerar a data atual retornando os dias uteis até ontem.

tentei algo nesse sentido, porem não obtive resultado 

sum({$<filial={'53'},DATA={'>=$(=Today()-1'}>}flag)

Se alguém puder me orientar em como fazer esse tipo de expressão eu agradeço.

1 Solution

Accepted Solutions
RafaMartins
Creator II
Creator II
Author

Bom dia,

com YearStart não funciona pois pega apenas o ano atual.

mudei um pouco a formula para que pegue o intervalo da primeira data da minha base até o dia de ontem.

count({$<DATA={">=$(=(min(DATA)))<=$(=(Date(Today()-1)))"},filial={53},flag={1}>}flag)

View solution in original post

8 Replies
marco_almeida
Creator II
Creator II

Fala jovem.. Bem.. Você está no caminho certo..

  • Soma simples: Sum(valor)
  • Soma dias úteis: Sum({<flag = {1}>} valor)
  • Soma dias úteis ano atual: Sum({<flag = {1}, data = {">=$(=YearStart(Today(-1)))"}>} valor)
  • Soma dias úteis anos anteriores: Sum({<flag = {1}, data = {"<$(=YearStart(Today(-1)))"}>} valor)

Agora você pode incrementar esses cálculos usando o Aggr (aggregate). Isso irá permitir agrupar por dimensões, por exemplo, filial.

  • Aggr(Sum({<flag = {1}, data = {">=$(=YearStart(Today(-1)))"}>} valor), filial)

Assim você vai moldando.

Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
RafaMartins
Creator II
Creator II
Author

Otavio,

no caso eu quero saber a soma de flag e não de "valor", então o campo flag não deveria estar fora do set?

sendo que preciso especificar a filial ou fazer com o set distingua para não repetir o valor repetido de cada filial

então não seria algo como:

sum({<filial={53},data={"<$(YearStart(Today(-1)))"}>} flag  

porem tentei isso e não deu certo.

marco_almeida
Creator II
Creator II

Se você quer contar a quantidade de dias úteis, então sim, pode tirar o set.

Você pode fazer um set para cada filial, ai você coloca a filial no set ou faz uma média, porque quando você abrir a mesma conta por filial, por exemplo numa tabela, o resultado vai ser exatamente a quantidade de dias.

Avg(Aggr(Sum({<data = {">=$(=YearStart(Today(-1)))"}>} flag), filial))
Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
RafaMartins
Creator II
Creator II
Author

Otavio, utilizando essa expressão me retornava um valor que não era o necessário( coluna teste 1)

Capturar.PNG  

fazendo algumas alterações na expressão: avg(Aggr(sum({<DATA={">=$((Today(-1)))"},filial={53}>} flag),Ano))

me retorna os dias uteis totais de cada ano, porem em 2019 eu preciso que me retorne os dias uteis até ontem não o total

marco_almeida
Creator II
Creator II

Se você vai abrir a informação por ano você não pode fazer set com data, isso distorce o resultado. Nesse caso você só pode fazer o set usando filial.

Sua expressão então ficaria como:

Avg(Aggr(Sum(flag), filial))

Cada situação você deve tratar de uma maneira, senão não vai dar certo.

Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
RafaMartins
Creator II
Creator II
Author

O problema não é esse, só que eu preciso que a set calcule os dias até hoje, o que eu não consigo fazer.

total expressão que tentei usar só calcular o geral me dando 254 dias para 2019 

marco_almeida
Creator II
Creator II

Nesse caso você só coloca outro limitar no cálculo:

Sum({< data = {">=$(=YearStart(Today()-1))<=$(=Today()-1)"} >}flag)
Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ
RafaMartins
Creator II
Creator II
Author

Bom dia,

com YearStart não funciona pois pega apenas o ano atual.

mudei um pouco a formula para que pegue o intervalo da primeira data da minha base até o dia de ontem.

count({$<DATA={">=$(=(min(DATA)))<=$(=(Date(Today()-1)))"},filial={53},flag={1}>}flag)