Erhöhen Sie einen Wert für die LaufnummerIch versuche eine Formel zu entwickeln, die die Run # erhöht. Es sollte für jedes Mal hochgezählt werden, wenn eine Shop-Bestellung eine neue Prozess-ID hat, und auf 1 zurückgesetzt werden, wenn zuvor noch keine neue Shop-Bestellung ausgeführt wurde. Wie unten gezeigt, hat der Shop-Auftrag 532 3 verschiedene Prozess-IDs, die jedoch nicht in Ordnung sind. Daher wird der endgültige Auftrag immer noch auf 3 erhöht, obwohl er nicht in Ordnung ist. Ich habe manuell eine Spalte erstellt, die zeigt, was ich als ideales Ergebnis für die Formelspalte haben möchte. Wie würde ich eine Formel schreiben, um mit diesem Problem umzugehen?

DatentabelleSkriptingBetreff: Erhöhen Sie einen Wert für die LaufnummerHier ist eine Formel, die Sie verwenden können.Erstellen Sie die neue Spalte Run #.Ich schlage vor, Sie machen den Modellierungstyp "Ordinal".Öffnen Sie den Formeleditor für die neue Spalte und fügen Sie Folgendes ein.
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");
);
Unten finden Sie ein Skript, das die Spaltenerstellung durchführt und die Formel für Sie anwendet
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 );
)
);Betreff: Erhöhen Sie einen Wert für die LaufnummerDanke dafür. Es macht nicht ganz das, wonach ich suche. Siehe die Nichtübereinstimmung zwischen der "Ideal Outcome Column for Run #" und der "Run #". Die Art und Weise, wie die Formel derzeit funktioniert, wird nur erhöht, unabhängig davon, ob ein neuer SO gestartet wird.

Betreff: Erhöhen Sie einen Wert für die LaufnummerEntschuldigung, ich habe den Link zu Shop Order verpasst.Das ändert alles und macht die Formel viel einfacher
If( Row() == 1 | :Shop Order != Lag( :Shop Order ),
count = 1,
If( :Process ID != Lag( :Process ID ),
count
++)
);
count;