增加運行編號的值我正在嘗試開發一個公式,以增加運行編號。 每當車間訂單具有新的流程ID時,它都應該計數;如果以前沒有運行過新的車間訂單,它將重新設置為1。 如下所示,車間訂單532具有3個不同的進程ID,但是它們不是按順序排列的,因此即使順序不正確,它在最後一個上仍最多遞增3。 我手動創建了一個列,以顯示想要作為公式列的理想結果的列。 我將如何寫一個公式來解決這個問題?

數據表腳本編寫回复:增加運行編號的值這是您可以使用的公式。創建新的列Run#。我建議您將建模類型設置為“ Ordinal”。打開新列的“公式編輯器”,然後粘貼以下內容。
If( Row() == 1,
:Process ID << set property( "Value Order", {Common Order( 0 ), Row Order Levels( 1 )} );
Summarize( byGroup = by( :Process ID ) );
:Process ID << delete property("Value Order");
);
下面是一個腳本,該腳本將創建列並為您應用公式
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Run #",
ordinal,
formula(
If( Row() == 1,
:Process ID << set property( "Value Order", {Common Order( 0 ), Row Order Levels( 1 )} );
Summarize( byGroup = by( :Process ID ) );
:Process ID << delete property("Value Order")
);
Contains( byGroup, :Process ID );
)
);回复:增加運行編號的值這次真是萬分感謝。 它並不能完全滿足我的要求。 請參見“運行編號的理想結果列”和“運行編號”之間的不匹配。 無論是否啟動新的SO,公式當前的工作方式都只會增加。

回复:增加運行編號的值抱歉,我錯過了與Shop Order的鏈接。這會改變一切,並使公式更簡單
If( Row() == 1 | :Shop Order != Lag( :Shop Order ),
count = 1,
If( :Process ID != Lag( :Process ID ),
count
++)
);
count;