Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
josemaria
Creator II
Creator II

suma total de una expresion con una condicion

Hola a tod@s,

Tengo una pequeña duda a ver si me podéis ayudar.

De una tabla pivotante me saca el control de stock, en la primera columna(Stock Físico Central) me hace la suma del total correcto, es una expresión normal sin ninguna condición, pero las columnas (Stock Disponible Central y Stock Físico Disponible Central) no me suma el total bien, son expresiones que tienen una condición. No sé qué es lo que estoy haciendo mal, tenéis alguna idea porque motivo puede ser?

adjunto expresiones con la condiciones y la tabla pivotante

Muchas gracias

Un Saludo

1 Solution

Accepted Solutions
Not applicable

Hola!!

A tu consulta me ha nacido la curiosidad y es verdad en los subtotales de una tabla pivotante se presenta problemas cuando haces un remplazo con una condicional, en tu caso reemplaza negativos por 0.

he realizado algunas pruebas capaz te pueda servir.

LOAD * INLINE [

    PASE, ARTICULO, PROVEEDOR, A, B, C

    AAA, T01, PRO1, 1, 1, 1

    AAA, T02, PRO1, 4, 0, 1

    AAA, T03, PRO1, 2, 2, 1

    AAA, T04, PRO1, 0, 3, 4

    AAA, T05, PRO1, 1, 0, 1

    AAA, T06, PRO1, 2, 1, 0

    AAA, T07, PRO1, 1, 0, 1

    AAA, T08, PRO1, 5, 5, 0

    AAA, T09, PRO1, 1, 1, 0

    AAA, T10, PRO1, 0, 3, 5

    AAA, T11, PRO1, 1, 0, 0

    AAA, T12, PRO1, 1, 1, 2

];


1) He realizado un cuadro de tabla para visualizar los datos


2) Con esos datos se ha armado una "Tabla Pivotante". con 4 expresiones en una de ellas se visualiza lo que esta pasando.

La expresion 'B-C' arroja un total de 1

La expresion 'Condicion en Expresion' arroja un total de 1 a pesar que los negativos los cambiamos a 0

hasta donde he podido entender los subtotales de una "Tabla Pivotante" no se influencia por una condicional para su calculo.

La expresion 'Condicion en Agrupacion', crea una tabla simple virtual con la funcion "Aggr" y es adentro de dicha funcion donde hacemos la condicional de los negativos; los datos calculados se vincularan con la tabla pivotante.

A

Sum(A)

'B-C'

sum(B-C)

Condicion en Expresion

if(sum(B-C)<0,0,sum(B-C))

Condicion en Agrupacion

sum(Aggr(if(sum(B-C)<0,0,sum(B-C)),PASE,ARTICULO,PROVEEDOR))

No soy tan bueno explicando, espero te sirva dicha explicacion desde mi punto de entendimiento.

Si trabajas con variables puedes simplicar el tamaño de tu expresiones y llevar un mejor control para los cambios.

View solution in original post

6 Replies
ecolomer
Master II
Master II

Prueba a cambiar el orden entre el if y el Sum, es decir, Sum(if (....

josemaria
Creator II
Creator II
Author

Gracias Enrique por la respuesta, pero al cambiar el orden la expresión me da error.

Muchas gracias,

un saludo,

ecolomer
Master II
Master II

Hola

Estás controlando si tienes algún Null ??

Prueba a cambiar el Sum por RangeSum

Si puedes pasarme el fichero lo reviso y pruebo

Saludos,

male_carrasco
Creator
Creator

Hola!!

Probaste usar Sum de AGGR?

Sum(Aggr(Expresion, Diemsiones))

Sum(Aggr(If(),Pase)

Espero te resulte.

Slds

Ale

Not applicable

Hola!!

A tu consulta me ha nacido la curiosidad y es verdad en los subtotales de una tabla pivotante se presenta problemas cuando haces un remplazo con una condicional, en tu caso reemplaza negativos por 0.

he realizado algunas pruebas capaz te pueda servir.

LOAD * INLINE [

    PASE, ARTICULO, PROVEEDOR, A, B, C

    AAA, T01, PRO1, 1, 1, 1

    AAA, T02, PRO1, 4, 0, 1

    AAA, T03, PRO1, 2, 2, 1

    AAA, T04, PRO1, 0, 3, 4

    AAA, T05, PRO1, 1, 0, 1

    AAA, T06, PRO1, 2, 1, 0

    AAA, T07, PRO1, 1, 0, 1

    AAA, T08, PRO1, 5, 5, 0

    AAA, T09, PRO1, 1, 1, 0

    AAA, T10, PRO1, 0, 3, 5

    AAA, T11, PRO1, 1, 0, 0

    AAA, T12, PRO1, 1, 1, 2

];


1) He realizado un cuadro de tabla para visualizar los datos


2) Con esos datos se ha armado una "Tabla Pivotante". con 4 expresiones en una de ellas se visualiza lo que esta pasando.

La expresion 'B-C' arroja un total de 1

La expresion 'Condicion en Expresion' arroja un total de 1 a pesar que los negativos los cambiamos a 0

hasta donde he podido entender los subtotales de una "Tabla Pivotante" no se influencia por una condicional para su calculo.

La expresion 'Condicion en Agrupacion', crea una tabla simple virtual con la funcion "Aggr" y es adentro de dicha funcion donde hacemos la condicional de los negativos; los datos calculados se vincularan con la tabla pivotante.

A

Sum(A)

'B-C'

sum(B-C)

Condicion en Expresion

if(sum(B-C)<0,0,sum(B-C))

Condicion en Agrupacion

sum(Aggr(if(sum(B-C)<0,0,sum(B-C)),PASE,ARTICULO,PROVEEDOR))

No soy tan bueno explicando, espero te sirva dicha explicacion desde mi punto de entendimiento.

Si trabajas con variables puedes simplicar el tamaño de tu expresiones y llevar un mejor control para los cambios.

josemaria
Creator II
Creator II
Author

Muchas Gracias Luis funciona perfectamente,

Un saludo