FormulaCiao, vorrei creare una colonna di prova:

Dal seguente copione:
dt11 = current data table();<BR />
// Choisir colonnes commençant par employes
dur_cols = Filter Each( {col_name}, dt11 << Get Column Names( "String", Nominal ),
Starts With( col_name, "employes " )
);
// Nouvelle colonne
dt11 << New Column( "TEST EMPLOYES", Numeric, "Continuous", Format( "Best", 12 ) );
// Modifier la formule de colonne : TEST EMPLOYES
dt11:TEST EMPLOYES <<
Set Formula(
For( i = 1, i < n items(dur_cols), i++,
If(
(dur_cols[i] == dur_cols[i+1] | Is Missing( dur_cols[i+1] )),
:TEST EMPLOYES = 1
,
:TEST EMPLOYES = 0
)
)
);L'obiettivo è avere 0 o 1 nella colonna IMPIEGATI DI TEST a seconda delle condizioni nel ciclo if... Al momento non posso creare la colonna test employees con i valori 0 o 1.
grazie per l'aiuto
Automazione e scriptingRi: FormulaQuali sono le condizioni in cui è necessario aggiungere 1 o 0?
Ri: FormulaParto da una colonna dipendente, in cui ci sono diversi campi compilati, ad esempio "611 - 2000 - 300", possono esserci più di 3 campi compilati.
Nel mio script ho separato questa colonna dal separatore "-", in modo che ci siano tante colonne "employe..." quanti sono i campi nella prima colonna "employe".
Condizione TEST EMPLOYE = 1 :
Tutte le colonne dei dipendenti create sono uguali o con valori mancanti
Condizione TEST EMPLOYE = 0 :
Sono stati creati dati diversi nelle colonne dei dipendenti (non tenere conto quando la colonna è vuota)
Esempio 1:
colonna dipendente 1:300
colonna dipendente 2: 300
colonna dipendente 3: 500
DIPENDENTE DI TEST = 0
Esempio 2:
colonna dipendente 1:300
colonna dipendente 2: 300
colonna dipendente 3:
DIPENDENTE DI TEST = 1
Ri: FormulaEseguire il calcolo dalla colonna originale è probabilmente più semplice
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
Compress File When Saved(1),
New Column("Column",
Character,
"Nominal",
Set Values({"1-1-3", "2-2-2", "3-3", ""})
),
New Column("Column 1", Character, "Nominal", Set Values({"1", "2", "3", ""})),
New Column("Column 2", Character, "Nominal", Set Values({"1", "2", "3", ""})),
New Column("Column 3", Character, "Nominal", Set Values({"3", "2", "", ""}))
);
dt << New Column("R", Numeric, Nominal, Formula(
res = Associative Array(Words(:Column , "-")) << get keys;
Remove From(res, Contains(res, "")); // remove missing value
N Items(res) == 1;
));

Non sono sicuro di quanto la riga mancante debba essere presa in considerazione, in questo caso viene trattata come 0 ma può essere modificata in uno modificando il confronto finale