Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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.
Prueba a cambiar el orden entre el if y el Sum, es decir, Sum(if (....
Gracias Enrique por la respuesta, pero al cambiar el orden la expresión me da error.
Muchas gracias,
un saludo,
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,
Hola!!
Probaste usar Sum de AGGR?
Sum(Aggr(Expresion, Diemsiones))
Sum(Aggr(If(),Pase)
Espero te resulte.
Slds
Ale
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.
Muchas Gracias Luis funciona perfectamente,
Un saludo