Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
hola, me encuentro realizando una app en qlik y necesito mostrar el saldo de stock de mis materiales, tengo un saldo de stock por material y una entrega asignada , lo que necesito es calcular mi saldo final de stock por material la tabla debería verse así actualmente mi tabla se ve así
Material entrega Cantidad_entregas Stock_material saldo material
001 221 10 500 490
001 223 50 500 450
002 332 80 400 320
002 334 50 400 350
lo que necesito es que mi saldo material quede como en la siguiente tabla
Material entrega Cantidad_entregas Stock_material saldo material
001 221 10 500 490
001 223 50 490 440
002 332 80 400 320
002 334 50 320 270
. . . . .
. . . . .
hello, I am making an app in qlik and I need to show the stock balance of my materials, I have a stock balance by material and an assigned delivery, what I need is to calculate my final stock balance by material the table should currently look like this my table looks like this
Material delivery Quantity_deliveries Stock_material material balance
001 221 10 500 490
001 223 50 500 450
002 332 80 400 320
002 334 50 400 350
what I need is that my material balance remains as in the following table
Material entrega Cantidad_entregas Stock_material saldo material
001 221 0 500 490
001 223 50 490 440
002 332 80 400 320
002 334 50 320 270
. . . . .
. . . . .
Hola, faltaría ver como se obtiene el stock inicial, pero una vez lo tengas relacionado con las entregas, al menos con la primera, podrías usar una carga ordenada con Order By y usar Peek para acceder al dato de la fila anerior:
tmpTablaInicial:
// carga la tabla incial con las entrega y el stock inicial del producto, lo puedes cargar con un mapping o con un left join, en esta tabla no importa que cada material tenga el mismo stock en todas sus filas
Tablafinal:
LOAD
Material,
Entrega,
Cantidad_entregas,
If(Material=Peek(Material)
,Peek(Stock_material)-Peek(Cantidad_entregas)
,Stock_material) as Stock_material,
If(Material=Peek(Material)
,Peek(saldo_material)-Cantidad_entregas
,Stock_material-Cantidad_entregas) as saldo_material
)
Resident tmpTablaInicial
Order By Material, Entrega;
Hola, Ruben
me ha servido, pero solo me generar un error y es que me duplica el calculo de la primera columna por material, ejemplo en la tabla adjunta, Gracias
Material | Entrega | cantidad_entrega | saldo_stock | saldopormaterial |
1 | 534 | 20 | 500 | 500 |
1 | 534 | 20 | 480 | 480 |
1 | 446 | 40 | 480 | 440 |
1 | 665 | 60 | 440 | 380 |
Hola Luis, ¿Puedes subir un ejemplo aunque sea con datos a mano para comprobar? No veo qué parte del código puede causar duplicados.
Hola Ruben, adjunto Script e imagen de la tabla generada
Volumen:
LOAD
Material,
Entrega,
cantidad_entrega,
saldo_stock,
saldopormaterial
FROM [lib://CHL-Publico/Luis Cuadra/saldopruebaee.xlsx]
(ooxml, embedded labels, table is Hoja1);
Tablafinal:
LOAD Distinct
Material,
Entrega,
cantidad_entrega,
If(Peek(saldo_stock)-Peek(cantidad_entrega)>0
,Peek(saldo_stock)-Peek(cantidad_entrega)
,saldo_stock) as saldo_stock,
If(Material=Peek(Material)
,Peek(saldopormaterial)-cantidad_entrega
,saldo_stock-cantidad_entrega) as saldopormaterial
Resident Volumen
Order By Material, Entrega;
Hola Luis, me faltaría el excel para probar y ver qué ocurre. Puedes quitar todos los datos que no sean necesarios para la prueba.