增加运行编号的值我正在尝试开发一个公式,以增加运行编号。 每当车间订单具有新的流程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;