Riempi la colonna una volta per gruppo senza ripetere i valori con JSLCIAO!
Quindi ho la tabella dei dati seguente. I risultati dei singoli test si trovano nella colonna "risultato del test" e indicano se il rispettivo y supera i test a, b e c. La colonna "risultato complessivo" indica un "promosso" se 2 o più test (a,b,c) vengono superati.
Sono riuscito a calcolare il risultato complessivo con una formula, ma quello che vorrei fare è ottenere un elenco che indichi il risultato una volta per variabile Y, ovvero risultato complessivo = "passa, fallisci, passa" come ha il risultato complessivo ideale . Qualche idea??

codice per 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")));Automazione e scriptingRi: Riempi la colonna una volta per gruppo senza ripetere i valori con JSLHo solo bisogno di una piccola modifica alla tua formula.
New Column( "overall result",
Formula(
If(
Col Cumulative Sum( 1, :Y ) > 1, "",
Col Sum( test result == "pass", :Y ) >= 2, "Pass",
"Fail"
)
)
);

Ri: Riempi la colonna una volta per gruppo senza ripetere i valori con JSLOpzione aggiuntiva (di solito eseguo questo tipo di "turni" utilizzando Row() == Col Min(Row()) o 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"
)
));