Hola,
Se adjunta un conjunto de datos jmp con datos de consumo para una parte.Tengo una comprensión de principiante de las fórmulas de columna, pero no lo suficiente como para lograr el resultado final que quiero con este conjunto de datos.Me gustaría poder ingresar un nivel de inventario inicial, un punto de reorden, un tiempo de entrega y una cantidad de pedido en una fórmula o secuencia de comandos que generará cuántas piezas permanecerán en el inventario utilizando esas entradas.En el siguiente ejemplo, empiezo con 3637 piezas en inventario.Mi punto de pedido es de 1510 piezas.La cantidad de mi pedido (la cantidad que pido cuando llego al punto de pedido) es de 600 piezas.En la fila 11, mi nivel de inventario total está por debajo de 1510 después de consumir 572, por lo que hago un pedido de 600 piezas.El pedido tarda 2 semanas en llegar, por lo que mi Total continúa cayendo hasta que los pedidos comienzan a llegar en la fila 13 (cada fila es una semana).He estado tratando de usar funciones como lag para crear una salida similar en JMP pero estoy perdido.
| Semana | Inventario disponible | Consumo | Total | ¿Realizar pedido? | Llega el pedido |
| 1 | 3637 | 234 | 3403 | No | norte |
| 2 | 3403 | 256 | 3147 | No | norte |
| 3 | 3147 | 272 | 2875 | No | norte |
| 4 | 2875 | 140 | 2735 | No | norte |
| 5 | 2735 | 204 | 2531 | No | norte |
| 6 | 2531 | 178 | 2353 | No | norte |
| 7 | 2353 | 112 | 2241 | No | norte |
| 8 | 2241 | 108 | 2133 | No | norte |
| 9 | 2133 | 380 | 1753 | No | norte |
| 10 | 1753 | 240 | 1513 | No | norte |
| 11 | 1513 | 572 | 941 | Sí | norte |
| 12 | 941 | 370 | 571 | Sí | norte |
| 13 | 571 | 586 | 585 | Sí | Y |
| 14 | 585 | 436 | 749 | Sí | Y |
| 15 | 749 | 449 | 900 | Sí | Y |
| dieciséis | 900 | 432 | 1068 | Sí | Y |
| 17 | 1068 | 252 | 1416 | Sí | Y |
| 18 | 1416 | 182 | 1834 | No | Y |
| 19 | 1834 | 327 | 2107 | No | Y |
| 20 | 2107 | 176 | 1931 | No | norte |
| 21 | 1931 | 367 | 1564 | No | norte |
| 22 | 1564 | 498 | 1066 | Sí | norte |
| 23 | 1066 | 225 | 1441 | Sí | Y |
| 24 | 1441 | 496 | 1545 | No | Y |
| 25 | 1545 | 1203 | 942 | Sí | Y |
| 26 | 942 | 1011 | 531 | Sí | Y |
| 27 | 531 | 525 | 606 | Sí | Y |
| 28 | 606 | 933 | 273 | Sí | Y |
| 29 | 273 | 541 | 332 | Sí | Y |
| 30 | 332 | 670 | 262 | Sí | Y |
| 31 | 262 | 146 | 716 | Sí | Y |
| 32 | 716 | 124 | 1192 | Sí | Y |
| 33 | 1192 | 107 | 1685 | No | Y |
| 34 | 1685 | 187 | 2098 | No | Y |
Aquí hay un script que crea la nueva tabla de datos que desea;
Names Default To Here( 1 );
dt = Data Table( "Part A Inventory Data" );
dtRpt = New Table( "Output Report",
Add Rows( N Rows( dt ) ),
New Column( "Week", set each value( Row() ) ),
New Column( "Inventory on Hand" ),
New Column( "Consumption", set each value( dt:Number of pieces consumed[Row()] ) ),
New Column( "Total" ),
New Column( "Place Order", character ),
New Column( "Order Arrives", character )
);
Current Data Table( dtRpt );
StartingIOH = 3637;
For( i = 1, i <= N Rows( dtRpt ), i++,
If( i == 1,
:"Inventory On Hand"n[i] = StartingIOH,
:"Inventory On Hand"n[i] = :Total[i - 1]
);
If( :"Order Arrives"n[i] == "",
:"Order Arrives"n[i] = "N"
);
:Total[i] = :"Inventory On Hand"n[i] - :Consumption[i];
If( :"Order Arrives"n[i] == "Y",
:Total[i] += 600
);
If( :Total[i] < 1510,
:"Place Order"n[i] = "Yes";
:"Order Arrives"n[i + 2] = "Y";
,
:"Place Order"n[i] = "No"
);
);

Parece haber una discrepancia alrededor de la línea 22 en la tabla de su informe.Usted especifica pedir piezas nuevas, sin embargo, informa que llegaron en una semana, no en 2 semanas.Mi secuencia de comandos establece la semana de llegada según su especificación de un retraso de pedido de 2 semanas.
Gracias señor esto es genial!