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: 
sacosta5
Contributor III
Contributor III

Promedio agrupado

Hola a todos....

les planteo mi problema, estoy calculando una demora en días y de esa misma no logro obtener el promedio.

Tengo esta tabla con los datos detallados que se necesitan.

Qlikview community12.jpg

Lo que no logro calcular en forma correcta es el promedio de Demora.

Qlikview community13.jpg

La fórmula que estoy usando es:

Avg(Aggr(Sum( Fecha1-Fecha2),Usr,Prac, Aut))

Datos:

Table1:

Load * inline

[Fecha1,Aut,Usr

01/01/2015,100,A

01/02/2015,101,A

02/01/2015,103,B

03/01/2015,104,B

12/02/2016,105,C

03/02/2016,106,C

];

Table2:

Load * inline

[Fecha2,Aut,Prac

01/01/2015,100,1

02/02/2015,101,1

02/04/2015,103,1

04/01/2015,104,1

04/01/2016,105,1

23/06/2015,106,1

23/06/2015,106,2

];

Saludos.

Silvia

1 Solution

Accepted Solutions
sorrakis01
Specialist
Specialist

Hola silvia,

Mira si te sirve:

Avg(Aggr(Aggr(Sum(Fecha1),Usr,Prac,Aut)-Aggr(Sum(Fecha2),Usr,Prac,Aut),Aut))

Saludos,

View solution in original post

5 Replies
sorrakis01
Specialist
Specialist

Hola silvia,


El promedio sobre que lo quieres hacer? Por usuario?.....

Saludos,

sorrakis01
Specialist
Specialist

Hola silvia,

Mira si te sirve:

Avg(Aggr(Aggr(Sum(Fecha1),Usr,Prac,Aut)-Aggr(Sum(Fecha2),Usr,Prac,Aut),Aut))

Saludos,

Not applicable

Hola, creo que sería algo así.

Avg(Aggr(Sum( Fecha1-Fecha2),Usr))


En este caso es el promedio, por usuario de Fecha1-Fecha2.


Es esto lo que usted desea ver ?


Saludos y ojala sirva.



alex_millan
Creator III
Creator III

Hola Silvia,

si lo que necesitas es el promedio de demora por usuario, puedes usar la expresión:

Sum(Total<Usr>Aggr(Sum(Fecha1 - Fecha2),Usr))/Count(Total<Usr>Usr)

Te adjunto ejemplo con tus datos.

Saludos.

rubenmarin

Hola Silvia,

La fila con 225 días de demora tiene más peso porque hay 2 registros, así que la operaciones para la media que está haciendo es (225+225+39)/3.

Puedes evitarlo modificando la expresión pra tener esto en cuenta o marcando con un flag los registros que deberían contarse, por ejemplo:

Table1:

Load * inline

[Fecha1,Aut,Usr

01/01/2015,100,A

01/02/2015,101,A

02/01/2015,103,B

03/01/2015,104,B

12/02/2016,105,C

03/02/2016,106,C

];

Table2:

Load Fecha2,Aut,Prac, If(Peek(Aut)=Aut, 0, 1) as Flag inline

[Fecha2,Aut,Prac

01/01/2015,100,1

02/02/2015,101,1

02/04/2015,103,1

04/01/2015,104,1

04/01/2016,105,1

23/06/2015,106,1

23/06/2015,106,2

];

Así puedes usar la expresión:

Avg({<Flag={1}>} Aggr(Sum( Fecha1-Fecha2),Usr,Prac, Aut))

Para coger el Prac más alto podrías cargar table 2 con "Order By Aut, Prac desc", así quedará marcado el registro con el Prac mas alto de cada Aut.