Bonjour,
Vous trouverez ci-joint un ensemble de données jmp avec les données de consommation d'une pièce.J'ai une compréhension débutante des formules de colonne, mais pas assez pour obtenir le résultat final que je veux avec cet ensemble de données.J'aimerais pouvoir saisir un niveau de stock de départ, un point de réapprovisionnement, un délai et une quantité de commande dans une formule ou un script qui affichera le nombre de pièces qui resteront en stock à l'aide de ces entrées.Dans l'exemple ci-dessous, je pars avec 3637 pièces en inventaire.Mon point de commande est de 1510 pièces.Ma quantité de commande (le montant que je commande lorsque j'atteins le point de commande) est de 600 pièces.Dans la rangée 11, mon niveau d'inventaire total est inférieur à 1510 après avoir consommé 572, donc je passe une commande de 600 pièces.La commande prend 2 semaines pour arriver, donc mon total continue de baisser jusqu'à ce que les commandes commencent à arriver sur la ligne 13 (chaque ligne correspond à une semaine).J'ai essayé d'utiliser des fonctions comme lag pour créer une sortie similaire dans JMP mais je suis perdu.
| Semaine | Inventaire disponible | Consommation | Total | Passer la commande? | La commande arrive |
| 1 | 3637 | 234 | 3403 | Non | N |
| 2 | 3403 | 256 | 3147 | Non | N |
| 3 | 3147 | 272 | 2875 | Non | N |
| 4 | 2875 | 140 | 2735 | Non | N |
| 5 | 2735 | 204 | 2531 | Non | N |
| 6 | 2531 | 178 | 2353 | Non | N |
| 7 | 2353 | 112 | 2241 | Non | N |
| 8 | 2241 | 108 | 2133 | Non | N |
| 9 | 2133 | 380 | 1753 | Non | N |
| dix | 1753 | 240 | 1513 | Non | N |
| 11 | 1513 | 572 | 941 | Oui | N |
| 12 | 941 | 370 | 571 | Oui | N |
| 13 | 571 | 586 | 585 | Oui | Oui |
| 14 | 585 | 436 | 749 | Oui | Oui |
| 15 | 749 | 449 | 900 | Oui | Oui |
| 16 | 900 | 432 | 1068 | Oui | Oui |
| 17 | 1068 | 252 | 1416 | Oui | Oui |
| 18 | 1416 | 182 | 1834 | Non | Oui |
| 19 | 1834 | 327 | 2107 | Non | Oui |
| 20 | 2107 | 176 | 1931 | Non | N |
| 21 | 1931 | 367 | 1564 | Non | N |
| 22 | 1564 | 498 | 1066 | Oui | N |
| 23 | 1066 | 225 | 1441 | Oui | Oui |
| 24 | 1441 | 496 | 1545 | Non | Oui |
| 25 | 1545 | 1203 | 942 | Oui | Oui |
| 26 | 942 | 1011 | 531 | Oui | Oui |
| 27 | 531 | 525 | 606 | Oui | Oui |
| 28 | 606 | 933 | 273 | Oui | Oui |
| 29 | 273 | 541 | 332 | Oui | Oui |
| 30 | 332 | 670 | 262 | Oui | Oui |
| 31 | 262 | 146 | 716 | Oui | Oui |
| 32 | 716 | 124 | 1192 | Oui | Oui |
| 33 | 1192 | 107 | 1685 | Non | Oui |
| 34 | 1685 | 187 | 2098 | Non | Oui |
Voici un script qui crée la nouvelle table de données souhaitée ;
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"
);
);

Il semble y avoir une différence autour de la ligne 22 dans votre tableau de rapport.Vous précisez commander de nouvelles pièces, cependant, vous signalez qu'elles sont arrivées en une semaine, pas en 2 semaines.Mon script définit la semaine d'arrivée en fonction de votre spécification d'un décalage de commande de 2 semaines.
Merci monsieur c'est super !