J'essaie de créer un script qui supprimera une ligne de ma table si l'ID et les deux valeurs sont identiques à la ligne qui la précède. Je ne peux pas supprimer toutes les lignes en double car il existe une colonne « numéro d'exécution » unique à chaque ligne. Est-ce que quelqu'un sait pourquoi mon code ne fonctionne pas ?
// Delete Duplicate Rows (re-entries)
NRows = N Rows(dt);
For(i = 1, i <= NRows, i++,
If(
dt:ID[i] == dt:ID[i + 1] & Data Table("Sheet1"):value1[i] == dt:value1[i + 1] & dt
:value2[i] == dt:value2[i + 1],
{dt << Delete Rows(i), i--}
)
);
Je pense que cette partie de votre script entre accolades est l'endroit où les choses ne vont pas (la fonction if() ne veut généralement pas d'accolades là-bas) :
{ dt << Supprimer les lignes (i), i --}
Cela étant dit, voici un autre moyen, peut-être plus simple, d'obtenir ce que vous voulez, en utilisant la fonction intégrée de JMP pour sélectionner les doublons :
dt << Select Duplicate Rows ({:ID, :Value 1, :Value 2});
dt << delete rows;