Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Promedio de un conteo (avg(count))

Hola expertos!! ayuda por fa!!!

Tengo que contar el numero de lineas que tiene un trabajo, sacar su promedio y ponerlo en un indicador.

En una tabla dinámica no tengo problema ya que la dimensión es Trabajo y me cuenta las lineas de cada uno de ellos, pero cuando quiero hacer el promedio de este count (Avg(count(Lineas)) me dice que la expresión es incorrecta ayúdenme poooooooor faaaa!

1 Solution

Accepted Solutions
jaimeaguilar
Partner - Specialist II
Partner - Specialist II

Hola,

Para hacer operaciones de agregación anidadas, se tiene que usar la función aggr(), ya que si intentas hacer algo como avg(count(campo)) no te da regresar ningún resultado ya que esa no es la forma en la que opera QlikView.

Lo que tendrías que hacer es algo como esto:

avg(aggr(count(Expresión), Campo1, Campo2, CampoN))
la manera es la que funciona esto es que primero va a hacer el conteo, después te lo va a totalizar por los campos que le digas (es indispensable totalizar por al menos 1 campo/dimensión) y finalmente te va a sacar el promedio. En otras palabras los aggr son útiles cuando tu agregación tiene más de un paso (en tu caso necesitas el promedio del conteo). Internamente lo que hace esta función es crear tablas virtuales (intermedias) que le permiten a qlikview el poder llegar a un resultado proveniente de una agregación anidada.
en el documento anexo podrás encontrar más información sobre el uso de estas funciones avanzadas
saludos

View solution in original post

5 Replies
martynlloyd
Partner - Creator III
Partner - Creator III

Avg(count(Lineas) es el mismo que count(Lineas), ya que la agregación ya tenido lugar...

martynlloyd
Partner - Creator III
Partner - Creator III

Para crear un promedio que necesita saber el número total de líneas.

Enmendar su 'script' o expresión para contar el número de líneas sin órdenes, o el total de líneas

jaimeaguilar
Partner - Specialist II
Partner - Specialist II

Hola,

Para hacer operaciones de agregación anidadas, se tiene que usar la función aggr(), ya que si intentas hacer algo como avg(count(campo)) no te da regresar ningún resultado ya que esa no es la forma en la que opera QlikView.

Lo que tendrías que hacer es algo como esto:

avg(aggr(count(Expresión), Campo1, Campo2, CampoN))
la manera es la que funciona esto es que primero va a hacer el conteo, después te lo va a totalizar por los campos que le digas (es indispensable totalizar por al menos 1 campo/dimensión) y finalmente te va a sacar el promedio. En otras palabras los aggr son útiles cuando tu agregación tiene más de un paso (en tu caso necesitas el promedio del conteo). Internamente lo que hace esta función es crear tablas virtuales (intermedias) que le permiten a qlikview el poder llegar a un resultado proveniente de una agregación anidada.
en el documento anexo podrás encontrar más información sobre el uso de estas funciones avanzadas
saludos
Not applicable
Author

Hola,

Como dice Jaime para que tu Aggr anidado funcione debes especificar el Campo(s) por el cual haras el Promedio:

avg(aggr(count(Expresión), Campo1, Campo2, CampoN)), otra forma seria contar las lineas Count(Lineas) y dividir entre algun numero de campos especifico, por ejemplo: Si tienes 100 lineas (Count(Lineas)) y deseas saber el promedio de lineas POR trabajo y tienes 5 trabajos (Count (Distinct Trabajo)) para tus 100 lineas totales entonces podrías intentar COUNT(Lineas) / Count(Distinct Trabajo)  esto te devolvería 20 lineas promedio por trabajo.

Saludos.

PD: si nos pudieras compartir un ejemplo de tu información podrías apoyarte un poco mejor

Not applicable
Author

Mil gracias!!!! Es justo lo que necesitaba!