Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Suma de columna en tabla pivotante

Saludos,

Tengo lo siguiente:

En una tabla pivotante con 2 dimensiones y 4 expresiones,

las dos primeras expresiones son valores de venta y presupuesto respectivamente.

Las dos ultimas expresiones son las diferencias, positivas y negativas, para lo cual

utilizo un (if) para determinar los + o -

if (Venta-Presupuesto<0,Venta-Presupuesto,0)

if (Venta-Presupuesto>0,Venta-Presupuesto,0)

El calculo lo realiza bien, pero al tener el total de la columna, este resultado no cuadra, no es el esperado.

De antemano gracias por la atencion prestada.

1 Solution

Accepted Solutions
pover
Luminary Alumni
Luminary Alumni

No se puede hacer un sum(sum(...)+sum(...)) y por eso te sale cero.  Para hacer el total sobre la suma de los detalles en una tabla pivote se puede usar la función aggr() en la siguiente manera:

sum(aggr(

if (sum(ValorVent)-sum(ValorPres)>0,sum(ValorVent)-sum(ValorPres),0)

,Articulo))

Saludos, Karl

View solution in original post

13 Replies
Miguel_Angel_Baeyens

Hola,

Necesitarás utilizar la función Sum() alrededor del If()

Sum(If([Venta] - [Presupuesto] < 0, [Venta] - [Presupuesto], 0))

Asumiendo que tanto [Venta] como [Presupuesto] son las etiquetas de las expresiones, y de ahí que lleven corchetes.

Espero que te sirva.

Miguel

Not applicable
Author

Saludos Miguel y muchas gracias por la atención.

Te comento, efectivamente tanto [Venta] como [Presupuesto] son etiquetas,

yo las tengo en corchetes en mi archivo .qvw

Lo q me sugieres es una de las primeras acciones que realice,

no me dio el resultado en el total, de echo se ponen valores "0" :

SUM(

if ([Venta]-[Presupuesto]>0,[Venta]-[Presupuesto],0)

)

--------------------

Asi tengo mi expresion, considerando no usar los nombres de las etiquetas para obtener el resultado:

SUM(

if (sum(ValorVent)-sum(ValorPres)>0,sum(ValorVent)-sum(ValorPres),0)

)

-----------------------

En el total de la columna obtengo la suma de todos, es decir tanto los positivos y negativos,

cuando lo q requiero es que me sume positivos y negativos...

Espero haberme explicado y agradeciendo la ayuda brindada.

pover
Luminary Alumni
Luminary Alumni

Si el objeto es una tabla simple, ve a la pestaña de expresiones y en cada expresión cambia el modo de total a suma de filas en vez de expresión total.

Saludos, Karl

Not applicable
Author

Saludos Karl,

Gracias por responder el comentario; te comento q el resultado si lo obtengo en una tabla simple

en las opciones de "Modo Totales" , el asunto pasa por q es una tabla pivotante, ya que una de sus

colunas pasa a ser fila en el pivoteo.

Te comento q es algo q no he podido resolver de hace unos dos dias, me gustaria saber

si podre obtener la respuesta tal como lo estoy realizando o de pronto no es la manera correcta de plantearlo.

De antemano muchas gracias y a la espera de alguna posible solucion o sugerencia.

P.D.

Donde yo trabajo se tiene una gran cultura hacia el analisis de los datos en tablas Pivotante

Qlikview me parece una herramienta muy muy buena!!, por ello no pense dos veces en sugerir la

su adquisicion en mi empresa.

Por ahora se que estoy aun tanto limitado en el conocimiento, por eso me saque una una cuenta en este Community para aprovechar el conocimiento de la nube.

pover
Luminary Alumni
Luminary Alumni

No se puede hacer un sum(sum(...)+sum(...)) y por eso te sale cero.  Para hacer el total sobre la suma de los detalles en una tabla pivote se puede usar la función aggr() en la siguiente manera:

sum(aggr(

if (sum(ValorVent)-sum(ValorPres)>0,sum(ValorVent)-sum(ValorPres),0)

,Articulo))

Saludos, Karl

Not applicable
Author

Perfect!!!  Muchas gracias , esa es la solucion.

Revisare mucho mas las funciones de agregaciones...

Muchas Gracias.

omarlq20
Contributor II
Contributor II

Yo estoy teniendo un caso similar podrian ayudarme...

La formula que estoy aplicando es

Para el campo CARGO

IF([WTS INV. AMOUNT] * 0.0025 < 100, 100, Sum([WTS INV. AMOUNT]*0.0025))

La cual me muestra los valores correctos pero no lo suman.

Para el campo CARGO COMISION BCP

Sum(Aggr(IF([WTS INV. AMOUNT] * 0.0025 < 100, 100, Sum([WTS INV. AMOUNT])*0.0025),PO))

No esta realizando la suma correcta.

imagen.JPG

pover
Luminary Alumni
Luminary Alumni

Si quieres probar la condición por cada fila que vas sumando intenta:

SUM(IF([WTS INV. AMOUNT] * 0.0025 < 100, 100, [WTS INV. AMOUNT]*0.0025))

Karl

omarlq20
Contributor II
Contributor II

Yo lo he probado, lo que me dices, pero el valor se excede demasiado, en cambio los valores del campo "CARGO" son los correctos pero la suma total no es la correcta.

imagen02.JPG