Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
joao_sp_campina
Creator II
Creator II

Somar valor da maior data por Semana

Boa tarde Pessoal,

Tenho um filtro de semana no qual quando selecionada semana X deverá trazer o valor o valor das semanas anteriores.

Exemplo:

Filtro: Semana 4 -> Deverá trazer o valor acumulado da semana 1 até a semana 3.

Porem o resultado da semana 1 à 3 deverá ser o valor da ultima data na semana. Ou ultimo dia da semana.

Veja a tabela abaixo:

SemanaDataValor
124/04/201710
125/04/201711
126/04/201710
127/04/201730
128/04/201735
129/04/201760
130/04/201761
201/05/201730
202/05/201710
203/05/201721
204/05/201745
205/05/201750
206/05/201752
207/05/201753
308/05/201720
309/05/201721
310/05/201725
311/05/201717
312/05/201730
313/05/201740
314/05/201731
415/05/201710
416/05/201740
417/05/201750
418/05/201728
419/05/201730
420/05/201748
421/05/201750

No exemplo acima o resultado da seleção na semana 4 deverá ser a soma dos valores destacados em vermelho: 61, 53 e 31. Sempre devera considerá a ultima data por semana anterior a semana selecionada.

Se alguem puder me ajudar, agradeço.

João Carlos.

1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Solução via Script:

Adicionar:

If(WeekDay(Data) = 0, 1, 0) As 'Flag'

Expressão frond-end:

If(GetSelectedCount(Semana)<>0,

  Sum({1< Semana={"<$(=Min(Semana))"}, Flag={1} >} Total Valor)

  ,Sum(Total  {<Flag={1} >} Valor)

)

O mesmo resultado da solução tudo via expressão que citei acima.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

9 Replies
Marcio_Campestrini
Specialist
Specialist

Joao

Crie um indicador no seu script para saber qual o ultimo dia da semana.

Imaginando que a sua semana vai de domingo a sabado:

If(WeekDay(Data) = 6, 1, 0) As _indicadorFimSemana

Com isso acredito que você vai conseguir gerar a sua soma sem problemas.

Márcio Rodrigo Campestrini
joao_sp_campina
Creator II
Creator II
Author

Márcio,

No meu caso a semana vai de Segunda a Domingo

Att,

Marcio_Campestrini
Specialist
Specialist

Joao

No caso de segunda a domingo é 6 mesmo. Para sábado é 5.

weekday ‒ QlikView

Márcio Rodrigo Campestrini
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue;

If(GetSelectedCount(Semana)<>0,

  Sum({1< Semana={"<$(=Min(Semana))"} >} Total SubField(Aggr(MaxString({1< Semana={"<$(=Min(Semana))"} >}Data&'-'&Valor), Semana), '-', 2))

  ,Sum(Total SubField(Aggr(MaxString(Data&'-'&Valor), Semana), '-', 2))

)

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
maiconmello
Creator III
Creator III

weekend(data) não resolve ?

sum(if(today() = weekend(today()),1,0)

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Resultado:

demo.gif

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Solução via Script:

Adicionar:

If(WeekDay(Data) = 0, 1, 0) As 'Flag'

Expressão frond-end:

If(GetSelectedCount(Semana)<>0,

  Sum({1< Semana={"<$(=Min(Semana))"}, Flag={1} >} Total Valor)

  ,Sum(Total  {<Flag={1} >} Valor)

)

O mesmo resultado da solução tudo via expressão que citei acima.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Funcionaria assim:

If(WeekDay(Data) = 0, 1, 0)


Via script, conforme alternativa que deixei abaixo.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
joao_sp_campina
Creator II
Creator II
Author

Boa tarde Mario,

Funcinou perfeitamente.

Muito obrigado

João Carlos