Suma de filas en tablas pivotantes

La tabla simple en QlikView tiene una opción para representar sus totales que se encuentra a medio camino entre una simple suma de filas y un total de expresión calculado. La tabla pivotante en QlikView carece de dicha posibilidad. Los totales en las tablas pivotantes siempre se calculan como un total de la expresión.

Esto es por lo general una cosa buena, dado que es bastante raro que una suma de filas sea relevante cuando ambas difieren.

Advertencia: Vaya con sumo cuidado cuando utilice las sumas de filas en cualquier tipo de agregación, más allá de las simples sumas.

Hecha esta advertencia, la siguiente sección muestra un ejemplo en el que la suma de filas ofrece, no obstante, el resultado deseado.

Ejemplo:  

En este ejemplo, tenemos una competición en un colegio, en la que tres equipos de estudiantes obtienen puntos por las notas obtenidas en tres clases distintas. El equipo puede seleccionar la puntuación más alta obtenida dentro del grupo en cada clase individual y luego añadir las tres puntuaciones más altas juntas para formar un total. Los siguientes datos se han tomado del script:

Una tabla simple con Class como dimensión y Max(Score) como expresión produce la siguiente suma de filas:

Si la tabla simple se convirtiera en una tabla pivotante que siempre se calcula como un total de expresión en vez de la suma de filas, tendríamos un problema:

En este caso concreto, el total de 12 es claramente lo que queremos y 5 es incorrecto para nuestro propósito. En este caso podemos usar la función Aggr en la expresión, no en la dimensión.

La expresión original va incluida en una función Aggr, empleando la dimensión del gráfico de alrededor también como dimensión en la función Aggr. Ahora este paquete se usa como argumento en una Sum agregación. La tabla nos mostrará ahora el total que esperamos:

La genialidad de la función de agregación avanzada está en que en las filas individuales evaluará a un solo valor. Esto es así porque la dimensión obviamente sólo tiene un valor posible para cada fila normal de datos. Dado que la dimensión y la expresión internas son las mismas que para el gráfico de alrededor, cada valor será lógicamente idéntico al resultado sin las funciones de agregación avanzada y Sum.

Sin embargo, para la fila total, la función de agregación avanzada devolverá tres valores, uno para cada valor del campo de dimensión. Éstos a su vez serán sumados por la agregación de Sum. Aunque formalmente aún se considera un total de la expresión, el resultado iguala al de la suma de las filas.