Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
RodrigoECH
Contributor
Contributor

¿Como aplico Set de analisis en sum(aggr(DISTINCT ?

Saludos, soy nuevo en qlik sense y se me a pedido que utilizando un historico de operaciones cree un panel en el que ingresando manualmente una fecha pueda obtener la suma de los montos de operaciones que fueron otorgadoso antes de la fecha y tiene a la vez un vencimiento mayor a la fecha ingresada.

Utilizo la herramienta "Variable Imput" para tomar los siguintes datos

vAño=2003
vMes=04
vDia=05

Utilizando los numeros ingresados los convierto en una fecha (2003-04-05) en la siguiente variable 

vInicio=MakeDate($(vAño),$(vMes),$(vDia))

Dado que la informacion contiene numeros de operacion  y montos duplicados ya que cuentan con mas de una fecha de vencimieinto necessito que solo sume un monto por operacion, para ello utilice la siguiente expresion


sum(aggr(sum(DISTINCT [Monto]), Operacion))

Dada la siguiente data de ejemplo me entrega 

7.057.745,36

Operación ;Monto; Otorgado; Vence
4665 ;5.252.484,45 ;2003-03-28; 2007-09-26
4666 ;1.250.000,00 ;2003-03-28 ;2007-09-26
4667 ;70.000,00 ;2003-05-06 ;2010-12-15
4878 ;210.000,00 ;2002-02-21 ;2007-02-28
6353 ;255.260,91 ;2001-01-10 ;2004-10-31
1000499 ;20.000,00 ;2002-08-26 ;2004-02-22
1000499 ;20.000,00 ;2002-08-27 ;2004-05-23
1000499 ;20.000,00 ;2002-08-28 ;2004-08-03
1000499 ;20.000,00 ;2002-08-29 ;2004-11-03


el total al que apunto es (5.252.484,45   +    1.250.000,00    +    210.000,00   +   255.260,91   +    20.000,00)  =   6.987.745,36

El valor es incorrecto pues necesito que solo concidere los montos  que se otrogaron antes de la fecha introducida y vencen despuesa de esta, en ese caso la operacion 4667 no deve ser conciderada, tampo los utlimos tres registros de la operacion 1000499

El problema es que no estoy seguro si es posible aplicar un set de analisis que utilice la variable creada para filtrar en la funcion, todos los intentos que realice me retornaron 0

1 Solution

Accepted Solutions
sunny_talwar

May be this

Sum(Aggr(Sum({<Otorgado = {"<$(=Date(vInicio))"}, Vence = {">$(=Date(vInicio))"}>}DISTINCT [Monto]), Operacion))

View solution in original post

2 Replies
sunny_talwar

May be this

Sum(Aggr(Sum({<Otorgado = {"<$(=Date(vInicio))"}, Vence = {">$(=Date(vInicio))"}>}DISTINCT [Monto]), Operacion))
RodrigoECH
Contributor
Contributor
Author

Tuve algunos problemas para que tomara las variables pero tras definir

vInicio=Date(MakeDate($(vAño),$(vMes),$(vDia)))

pude usar tu expresion de la siguiente manera

sum(aggr(Sum(distinct{<Vence={">=$(=$(vInicio))"},Otorgado={"<=$(=$(vInicio))"}>} Monto), Operacion))

 

Muchas Gracias por la ayuda