J'ai une table de données avec trois colonnes. La première colonne est «semaine de travail». La deuxième colonne est «Qté». La troisième colonne est «Cum_Qty».
Dans la colonne «Cum_Qty», la valeur est la somme continue de la valeur de la ligne précédente dans la colonne «Qty» jusqu'à ce que meet => 500.
Si la quantité de ligne est => 500 po, la valeur sera mise à jour comme dans le 'cum_Qty'.
J'ai besoin d'aide pour écrire un script JSL pour créer une nouvelle colonne ('Cum_WW') qui concaténera les numéros de la semaine de travail pour indiquer que le 'Cum_Qty' correspondant est la somme de la semaine de travail X à la semaine de travail Y afin de répondre à qty => 500. Ensuite, supprimez les quelques lignes.
Reportez-vous au fichier joint et aux explications ci-dessous pour plus de détails.
Exemples:
Dans la semaine de travail 2, la quantité est de 633 (> 500) dans la colonne 'Qté', la quantité est de 633 dans 'Cum_Qty' (aucune somme des valeurs de la ligne précédente), dans 'Cum_WW' indique la semaine de travail 2 .
Dans la semaine de travail 3, la quantité est de 185 (<500), elle totalise 185 (à partir de la semaine de travail 3) + 633 (à partir de la semaine de travail 2) = 818, cette valeur est mise à jour dans la colonne 'Cum_Qty', dans 'Cum_WW' indiquera la semaine de travail 2_3 .
Dans la semaine de travail 4, la quantité est de 130 (<500), elle totalise 130 (à partir de la semaine de travail 4) + 185 (à partir de la semaine de travail 3) + 633 (à partir de la semaine de travail 2) = 948, cette valeur est mise à jour dans la colonne 'çum_Qty', dans ' Cum_WW 'indiquera la semaine de travail 2_4 .
Dans la semaine de travail 5, la quantité est de 90 (<500), elle totalise 90 (à partir de la semaine de travail 5) + 130 (à partir de la semaine de travail 4) + 185 (à partir de la semaine de travail 3) + 633 (à partir de la semaine de travail 2) = 1038, cette valeur est mise à jour dans La colonne 'Cum_Qty', dans 'Cum_WW' indiquera la semaine de travail 2_5 .
etc......
Ensuite, supprimez la ligne dans 'Cum_WW' 2 , 2_3 , 2_4 et maintenez la ligne de données dans 'Cum_WW' 2_5 ….etc….
Merci de votre aide.
Voici un script qui suit les étapes qui peuvent être suivies à l'aide de JMP interactif pour résoudre ce problème. Être capable de créer efficacement des scripts dans JMP nécessite une bonne compréhension de ce que JMP peut faire de manière interactive. Les bons scripts tirent parti des fonctionnalités intégrées de JMP interactif. Un bon début pour apprendre les tenants et aboutissants de JMP peut être trouvé en lisant les documents JMP, en découvrant JMP et en utilisant JMP. Ceux-ci peuvent être trouvés dans la bibliothèque de documentation JMP
Aide => Bibliothèque de documentation JMP
Voici un script qui fait ce que vous voulez. Il suppose qu'il commence par les 2 colonnes, Qty et Cum_WW.
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "Cum_Qty",
formula(
If( Row() == 1, x = 0 );
If( :Qty > 500,
x = :Qty,
x = x + :Qty
);
x;
)
);
// Turn formula columns into static values
dt:Cum_Qty << delete formula;
dt << New Column( "WW", formula( Word( 1, :Cum_WW, "_" ) ) );
// Create a new column that is a numeric version of the Cum_WW
dt << New Column( "Cum_WW_Num",
formula(
Sum(
Num( Word( 1, :Cum_WW, "_" ) ),
Num( Word( 2, :Cum_WW, "_" ) ) * .1
)
)
);
dt << select where( :WW == "" );
dt << delete rows;
dt << New Column( "select",
Formula(
If( :Cum_WW_Num != Col Max( :Cum_WW_Num, :WW ),
Row State( Row() ) = Selected State( 1 )
)
)
);
dt << delete columns( {"WW", "Cum_WW_Num", "select"} );
dt << delete rows;
Veuillez étudier le script afin de comprendre les différents éléments qui ont été utilisés pour arriver à la solution. Si vous avez des questions sur l'un d'entre eux, veuillez répondre à cet article et je vous aiderai à mieux comprendre.
Merci Jim. Le script est simple et génial.
Si cela commence par 3 colonnes «semaine de travail», «Qté» et «Cum_Qty», y a-t-il moyen d'obtenir la colonne «Cum_WW»?