Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
jorge_redondo
Contributor III
Contributor III

Ayuda con una expresión

Hola amigos!

Tengo una tabla pivotante (DETALLE) que muestra tres columnas calculadas que funciona correctamente.

Sin embargo, al crear la misma tabla pero eliminando dimensiones para transformarla en una 'tabla resumen' las columnas calculadas dejan de comportarse correctamente y muestran resultados dispares. Tan sólo he detectado que los muestra correctamente cuando en una selección de registros, no existe ninguna devolución. Como quiera que ya entré en la fase de ensayo/prueba/error... me dije.. es el momento de consultar en el foro de la sabiduría...

¿Qué estoy haciendo mal?

Gracias!!

Adjunto el qwv.

2017-03-08 12_03_48-QlikView x64 - Copia de Partner - [E__Trabajo_APP JLArenas local_Test.qvw_].png

1 Solution

Accepted Solutions
hector_munoz
Specialist
Specialist

He quitado varias cosas:

  • DISTINCT en los Sum (tanto en detalle como en resumen) porque creo que no tiene sentido,
  • En Resumen he cambiado la expresión de Dto por su descomposición de subexpresiones. El dimensionality = 0 siempre hace referencia a la línea de total, y en caso contrario a las filas de la distribución de la expresión.

Espero que te sirva, creo que en el adjunto ya está cuadrado el detalle con el resumen.

Saludos,
H

View solution in original post

6 Replies
hector_munoz
Specialist
Specialist

Hola Jorge,

Prueba a sustituir (para la expresión Dto) la expresión actual por la siguiente:

If(Dimensionality() = 0,

   1- ([Total

Venta] / [PVP]),

   sum({$<[ID Operación]={'V'},[Fecha Operación]={'>=$(=Date(vFecha))<=$(=Date(vFechaMax))'}>}DISTINCT if( Cantidad < 0,[Descuento]*-1, [Descuento] )))

, además cambia la forma de totalizar a expresión total en vez de como media de valores.

Con esto lo que consigues es que en el total no hagas la media aritmética de los descuentos sino el descuento total que sería igual a 1 - ([Total Venta] - [PVP]). ¿Te serviría así?

Si es que sí, tendrías que hacer esto mismo en el resto de expresiones del objeto actual y del otro.

Saludos,

H

jorge_redondo
Contributor III
Contributor III
Author

Hola Héctor! Muchas gracias por responder. Tu ayuda me ha servido de mucho. En la expresión 'Dto.' de la primera tabla (Detalle) he puesto:

If(Dimensionality() = 0,

  1- ([Total

Venta] / [PVP]),

  sum(

  {$<[ID Operación]={'V'},

  [Fecha Operación]={'>=$(=Date(vFecha))<=$(=Date(vFechaMax))'}>}

  DISTINCT if( Cantidad < 0,[Descuento]*-1, [Descuento] )

  )

  )

Como indicaste, y el Modo Total a Expresión Total. Funciona. Antes creía que también funcionaba, pero sólo a nivel detalle porque comprobé que la media del total fallaba ligeramente.

Pero en la tabla Resumen, copiando sin más la expresión anterior, no funciona. La he corregido por:

If(Dimensionality() <> 0,

  1- ([Total

Venta

] / [PVP]),

  sum(

  {$<[ID Operación]={'V'},

  [Fecha Operación]={'>=$(=Date(vFecha))<=$(=Date(vFechaMax))'}>}

  DISTINCT if( Cantidad < 0,[Descuento]*-1, [Descuento] )

  )

  )


He tenido que dejar el Modo Total como Media.

Y funciona correctamente si seleccionas sólo una tienda. Si seleccionas dos o más.. hay ligeros descuadres en los totales..

Vuelvo a adjuntar el QVW con los cambios que hice.

¿Tendrá algo que ver con el Dimensionality()?

hector_munoz
Specialist
Specialist

He quitado varias cosas:

  • DISTINCT en los Sum (tanto en detalle como en resumen) porque creo que no tiene sentido,
  • En Resumen he cambiado la expresión de Dto por su descomposición de subexpresiones. El dimensionality = 0 siempre hace referencia a la línea de total, y en caso contrario a las filas de la distribución de la expresión.

Espero que te sirva, creo que en el adjunto ya está cuadrado el detalle con el resumen.

Saludos,
H

jorge_redondo
Contributor III
Contributor III
Author

Muchas gracias Héctor! me estás haciendo la aplicación, que lo sepas! 😉

hector_munoz
Specialist
Specialist

Te mando por privado mi dirección para que me envíes un jamoncito bueno... 😉

jorge_redondo
Contributor III
Contributor III
Author

Si consigo que me paguen por esto, ni lo dudes!

Por cierto, finalmente sí que tuve que poner la cláusula DISTINCT en las columnas de margen porque sino, cuando era más de una unidad, doblaba los porcentajes.