你好,
附件是包含零件消耗数据的 jmp 数据集。我对列公式有初学者的理解,但不足以通过该数据集实现我想要的最终结果。我希望能够将起始库存水平、再订购点、交货时间和订单数量输入到公式或脚本中,该公式或脚本将使用这些输入输出库存中剩余的件数。在下面的示例中,我的库存起始数量为 3637 件。我的再订购点是 1510 件。我的订单数量(达到再订购点时的订单数量)是 600 件。在第 11 行,消耗 572 件后,我的总库存水平低于 1510,因此我下了 600 件的订单。订单需要 2 周才能到达,因此我的总计持续下降,直到订单开始到达第 13 行(每行为一周)。我一直在尝试使用 lag 等函数在 JMP 中创建类似的输出,但我不知所措。
| 星期 | 现有库存 | 消耗 | 全部的 | 下订单? | 订单到达 |
| 1 | 3637 | 234 | 3403 | 不 | 氮 |
| 2 | 3403 | 256 | 3147 | 不 | 氮 |
| 3 | 3147 | 第272章 | 2875 | 不 | 氮 |
| 4 | 2875 | 140 | 2735 | 不 | 氮 |
| 5 | 2735 | 204 | 2531 | 不 | 氮 |
| 6 | 2531 | 178 | 2353 | 不 | 氮 |
| 7 | 2353 | 112 | 2241 | 不 | 氮 |
| 8 | 2241 | 108 | 2133 | 不 | 氮 |
| 9 | 2133 | 380 | 第1753章 | 不 | 氮 |
| 10 | 第1753章 | 240 | 1513 | 不 | 氮 |
| 11 | 1513 | 第572章 | 第941章 | 是的 | 氮 |
| 12 | 第941章 | 370 | 第571章 | 是的 | 氮 |
| 13 | 第571章 | 第586章 | 第585章 | 是的 | 是 |
| 14 | 第585章 | 第436章 | 第749章 | 是的 | 是 |
| 15 | 第749章 | 第449章 | 900 | 是的 | 是 |
| 16 | 900 | 第432章 | 1068 | 是的 | 是 |
| 17 号 | 1068 | 第252章 | 1416 | 是的 | 是 |
| 18 | 1416 | 182 | 1834年 | 不 | 是 |
| 19 | 1834年 | 第327章 | 2107 | 不 | 是 |
| 20 | 2107 | 176 | 1931年 | 不 | 氮 |
| 21 | 1931年 | 第367章 | 第1564章 | 不 | 氮 |
| 22 | 第1564章 | 第498章 | 1066 | 是的 | 氮 |
| 23 | 1066 | 225 | 第1441章 | 是的 | 是 |
| 24 | 第1441章 | 第496章 | 第1545章 | 不 | 是 |
| 25 | 第1545章 | 1203 | 第942章 | 是的 | 是 |
| 26 | 第942章 | 1011 | 第531章 | 是的 | 是 |
| 27 | 第531章 | 第525章 | 606 | 是的 | 是 |
| 28 | 606 | 第933章 | 273 | 是的 | 是 |
| 29 | 273 | 第541章 | 第332章 | 是的 | 是 |
| 30 | 第332章 | 670 | 262 | 是的 | 是 |
| 31 | 262 | 146 | 第716章 | 是的 | 是 |
| 32 | 第716章 | 124 | 第1192章 | 是的 | 是 |
| 33 | 第1192章 | 107 | 1685 | 不 | 是 |
| 34 | 1685 | 187 | 2098 | 不 | 是 |
这是一个创建您想要的新数据表的脚本;
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"
);
);

您的报告表中第 22 行似乎存在差异。您指定订购新零件,但是您报告它们在一周内到达,而不是两周内。我的脚本根据您指定的 2 周订单延迟来设置到达周。