Incrémenter une valeur pour le numéro de sérieJ'essaie de développer une formule qui incrémente le numéro d'exécution. Il doit compter pour chaque fois qu'une commande boutique a un nouvel ID de processus et est réinitialisée à 1 lorsqu'une nouvelle commande boutique n'a pas été exécutée auparavant. Comme indiqué ci-dessous, la commande d'achat 532 a 3 ID de processus différents, mais ils ne sont pas dans l'ordre, donc il augmente toujours jusqu'à 3 sur le dernier même s'il n'est pas dans l'ordre. J'ai créé une colonne montrant manuellement ce que je souhaiterais comme résultat idéal pour la colonne de formule. Comment écrire une formule pour résoudre ce problème?

Tableau de donnéesScriptingRe: incrémenter une valeur pour le numéro d’exécutionVoici une formule que vous pouvez utiliser.Créez la nouvelle colonne Run #.Je vous suggère de faire le type de modélisation "Ordinal".Ouvrez l'éditeur de formule pour la nouvelle colonne et collez ce qui suit.
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");
);
Vous trouverez ci-dessous un script qui effectuera la création de la colonne et appliquera la formule pour vous
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 );
)
);Re: incrémenter une valeur pour le numéro d’exécutionMerci pour ça. Cela ne fait pas tout à fait ce que je recherche. Voir la non-concordance entre la "Colonne des résultats idéaux pour le numéro d'exécution" et le "numéro d'exécution". La façon dont la formule fonctionne actuellement ne fait qu'augmenter, peu importe si un nouveau SO est démarré.

Re: incrémenter une valeur pour le numéro d’exécutionDésolé, j'ai manqué le lien avec la commande Shop.Cela change tout et rend la formule beaucoup plus simple
If( Row() == 1 | :Shop Order != Lag( :Shop Order ),
count = 1,
If( :Process ID != Lag( :Process ID ),
count
++)
);
count;