Remplissez la colonne une fois par groupe sans répéter les valeurs avec JSLSalut!
J'ai donc le tableau de données ci-dessous. Les résultats des tests individuels se trouvent dans la colonne « résultat du test » et indiquent si le y respectif réussit les tests a, b et c. La colonne « résultat global » indique une « réussite » si 2 ou plusieurs des tests (a,b,c) réussissent.
J'ai pu calculer le résultat global avec une formule, mais ce que j'aimerais faire, c'est obtenir une liste indiquant le résultat une fois par variable Y - c'est-à-dire résultat global = "réussite, échec, réussite" comme le résultat global idéal . Des idées??

code pour dt :
dt = New Table( "example",
Add Rows( 0 ),
New Column( "Y", character ),
New Column( "test",character ),
New Column( "test result",character )
)
:Y << set values( {var1,var1,var1,var2,var2,var2,var3,var3,var3});
:test << set values( {a,b,c,a,b,c,a,b,c});
:test result<< set values( {pass,pass,fail,fail,pass,fail,pass,pass,pass});
new column("overall result",Formula(if(col sum(test result=="pass",Y)>=2, "Pass", "Fail")));Automatisation et scriptsRe : Remplir la colonne une fois par groupe sans répéter les valeurs avec JSLJ'ai juste besoin d'un petit changement dans votre formule.
New Column( "overall result",
Formula(
If(
Col Cumulative Sum( 1, :Y ) > 1, "",
Col Sum( test result == "pass", :Y ) >= 2, "Pass",
"Fail"
)
)
);

Re : Remplir la colonne une fois par groupe sans répéter les valeurs avec JSLOption supplémentaire (je fais habituellement ce type de "décalages" en utilisant Row() == Col Min(Row()) ou Row() == Col Max(Row())).
Names Default To Here(1);
dt = New Table("example 4",
Add Rows(9),
Compress File When Saved(1),
New Column("Y", Character, "Nominal", Set Values({"var1", "var1", "var1", "var2", "var2", "var2", "var3", "var3", "var3"})),
New Column("test", Character, "Nominal", Set Values({"a", "b", "c", "a", "b", "c", "a", "b", "c"})),
New Column("test result", Character, "Nominal", Set Values({"pass", "pass", "fail", "fail", "pass", "fail", "pass", "pass", "pass"}))
);
dt << New Column("Res", Character, Nominal, Formula(
If(Row() != Col Min(Row(), :Y),
"" // not first row fir Y group
, Col Sum(:test result == "pass", :Y) >= 2,
"pass"
, // else
"fail"
)
));