連接工作週數字以指示從工作週 X 到 Y 的相應累積數量總和我有包含三列的資料表。第一欄是「工作週」。 第二列是「數量」。 第三列是「Cum_Qty」。
在「Cum_Qty」欄位中,它的值是「Qty」欄位中前一行值的持續總和,直到滿足 => 500。
如果 中的行數量 => 500,則該值將按照「cum_Qty」中的方式更新。
我需要協助編寫 JSL 腳本來建立一個新列(「Cum_WW」),該列將連接工作週數字以指示相應的「Cum_Qty」是從工作週 X 到工作週 Y 的總和,以滿足 qty => 500。然後,刪除一些行。
詳細資訊請參閱下面的附件和說明。
例子:
在工作週 2 中,「Qty」欄的數量為 633 (> 500),「Cum_Qty」中的數量為 633(沒有前一行值的總和),「Cum_WW」中將指示工作週2 。
在工作週3 中,數量為185 (< 500),總和為185(來自工作週3)+ 633(來自工作週2)= 818,該值在“Cum_Qty”列中更新,“Cum_WW”中將指示工作週2_3 。
在工作週4 中,數量為130 (<500),其總和為130(來自工作週4)+ 185(來自工作週3)+ 633(來自工作週2)= 948,該值在「çum_Qty」列中更新,在“ Cum_WW' 將表示工作週2_4 。
在工作週5 中,數量為90(<500),其總和為90(來自工作週5)+ 130(來自工作週4)+ 185(來自工作週3)+ 633(來自工作週2)= 1038 ,該值在「Cum_WW」中的「Cum_Qty」欄位將指示工作週2_5 。
等等......
然後,刪除“Cum_WW”中的行2 , 2_3 , 2_4並維護'Cum_WW'中的資料行2_5 …。等等…。
感謝您的協助。
資料混合與清理回覆:連接工作週數字以表示從工作週 X 到 Y 對應的數量累積總和謝謝你!
回覆:連接工作週數字以表示從工作週 X 到 Y 對應的數量累積總和這是一個快速公式,可以從 Workweek 建立您的 Cum_WW
If( Row() == 1,
x = "";
hold = "";
);
If( :Qty == :Cum_Qty,
hold = Char( :Workweek );
x = hold;
,
If( hold != "",
x = hold || "_" || Char( :Workweek )
)
);
x;
回覆:連接工作週數字以表示從工作週 X 到 Y 對應的數量累積總和謝謝吉姆。 該腳本簡單而偉大。
如果它以 3 列「workweek」、「Qty」和「Cum_Qty」開始,是否有辦法取得「Cum_WW」欄位?
回覆:連接工作週數字以表示從工作週 X 到 Y 對應的數量累積總和下面是一個腳本,它遵循使用互動式 JMP 可以採取的步驟來解決此問題。要能夠在 JMP 中有效建立腳本,需要充分了解 JMP 可以互動執行的操作。好的腳本可以利用互動式 JMP 的內建功能。透過閱讀 JMP 文件、發現 JMP 和使用 JMP,可以開始了解 JMP 的細節。這些可以在 JMP 文檔庫中找到
幫助=>JMP 文件庫
這是一個可以完成您想要的操作的腳本。它假定以 2 列(Qty 和 Cum_WW)開始。
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Cum_Qty",
formula(
If( Row() == 1, x = 0 );
If( :Qty > 500,
x = :Qty,
x = x + :Qty
);
x;
)
);
// Turn formula columns into static values
dt:Cum_Qty << delete formula;
dt << New Column( "WW", formula( Word( 1, :Cum_WW, "_" ) ) );
// Create a new column that is a numeric version of the Cum_WW
dt << New Column( "Cum_WW_Num",
formula(
Sum(
Num( Word( 1, :Cum_WW, "_" ) ),
Num( Word( 2, :Cum_WW, "_" ) ) * .1
)
)
);
dt << select where( :WW == "" );
dt << delete rows;
dt << New Column( "select",
Formula(
If( :Cum_WW_Num != Col Max( :Cum_WW_Num, :WW ),
Row State( Row() ) = Selected State( 1 )
)
)
);
dt << delete columns( {"WW", "Cum_WW_Num", "select"} );
dt << delete rows;
請研究該腳本,以便您了解用於獲得解決方案的各個項目。如果您對其中任何一個有疑問,請回复此帖子,我將幫助您補充理解。