Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
carlos13
Creator
Creator

Max en dimension

Buenos días quisiera calcular una dimension.

Mi caso es el siguiente: tengo muchas garantías en un periodo, estas garantías a su vez tienen muchas operaciones, lo que quiero es mostrar la Operacion mayor(que es numerico) de una Garantia, y que las demás dimensiones sea la relación de esa operación mayor.

Lo que me importa es la operación mayor de la garantía y así realizar los demás cálculos solo con esa operacion.

Pense en hacerlo asi pero no me funciona

Aggr(if(ID_OPERACION = max(total ID_OPERACION ), ID_OPERACION ),NUMERO_GARANTIA )

test.jpg

Si me pueden ayudar se los agradezco de antemano.

Saludos,

Carlos

1 Solution

Accepted Solutions
Luis_Cortizo
Former Employee
Former Employee

Buenas tardes, Carlos

  No sé si he entendido bien el problema, digamos que dada la siguiente tabla (centrándonos en los campos que son relevantes para lo que queremos calcular):

Tabla.JPG.jpg

Querríamos un resultado tal que asi:

Res.JPG.jpg

De manera que las dimensiones muestren el periodo, las garantías de las operaciones con el máximo valor, dichas operaciones y su expresión (en mi caso la suma de un campo).

¿Has probado a agregar el máximo del campo operación por el resto de valores de la tabla?, sencillamente escribiendo =aggr(Max(Operacion), Garantia) debería agrupar el máximo de operación para todas las garantías. Como tienes varios periodos y también tendrías que agrupar por ese periodos, el aggr quedaria tal que =aggr(Max(Operacion), Garantia, Periodo).

El aggr() te va a mostrar la agregación que hayas definido, sin embargo la expresión va a seguir calculando el resultado de la evaluación de todos los registros, por lo tanto será necesario que la expresión se calcule para el máximo valor del campo operación tal que (suponiendo que la expresión fuese sum(campo)):

Sum({<Operacion={$(=Max(Operacion))}>}Campo)

Creo que con eso podrías obtener la tabla que buscas. Te mando un ejemplo de todo esto.

En cualquier caso, tanto el aggr como el Max son operaciones que consumen bastantes recursos, desde el punto de vista del diseño del documento, su mantenimiento y su escalabilidad, sería más cómodo calcular estas operaciones en el script en lugar de en la capa de diseño.

View solution in original post

2 Replies
Luis_Cortizo
Former Employee
Former Employee

Buenas tardes, Carlos

  No sé si he entendido bien el problema, digamos que dada la siguiente tabla (centrándonos en los campos que son relevantes para lo que queremos calcular):

Tabla.JPG.jpg

Querríamos un resultado tal que asi:

Res.JPG.jpg

De manera que las dimensiones muestren el periodo, las garantías de las operaciones con el máximo valor, dichas operaciones y su expresión (en mi caso la suma de un campo).

¿Has probado a agregar el máximo del campo operación por el resto de valores de la tabla?, sencillamente escribiendo =aggr(Max(Operacion), Garantia) debería agrupar el máximo de operación para todas las garantías. Como tienes varios periodos y también tendrías que agrupar por ese periodos, el aggr quedaria tal que =aggr(Max(Operacion), Garantia, Periodo).

El aggr() te va a mostrar la agregación que hayas definido, sin embargo la expresión va a seguir calculando el resultado de la evaluación de todos los registros, por lo tanto será necesario que la expresión se calcule para el máximo valor del campo operación tal que (suponiendo que la expresión fuese sum(campo)):

Sum({<Operacion={$(=Max(Operacion))}>}Campo)

Creo que con eso podrías obtener la tabla que buscas. Te mando un ejemplo de todo esto.

En cualquier caso, tanto el aggr como el Max son operaciones que consumen bastantes recursos, desde el punto de vista del diseño del documento, su mantenimiento y su escalabilidad, sería más cómodo calcular estas operaciones en el script en lugar de en la capa de diseño.

carlos13
Creator
Creator
Author

Muchas gracias Luis.