FormulaBonjour, je cherche à construire une colonne de test :

A partir du script suivant :
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'objectif est d'avoir des 0 ou des 1 dans la colonne TEST EMPLOYES en fonction des conditions dans la boucle if... Pour le moment je n'arrive pas à créer la colonne test employes avec les valeurs 0 ou 1.
Merci de votre aide
Automation and ScriptingRé: FormuleQuelles sont les conditions dans lesquelles 1 ou 0 doivent être ajoutés ?
Re: FormulaJe pars d'une colonne employé, dans laquelle il y a plusieurs champs renseigné comme par exemple "611 - 2000 - 300", il peut y avoir plus de 3 champs renseigné.
Dans mon script je divise cette colonne à partir du séparateur "-", donc il y a autant de colonne "employe..." que de champs dans la première colonne "employe".
Condition TEST EMPLOYE = 1 :
Toutes les colonnes employés crées sont égales ou valeur manquantes
Condition TEST EMPLOYE = 0 :
Données différentes dans les colonnes employés crées (ne pas prendre en compte quand la colonne est vide)
Exemple 1 :
colonne employé 1 : 300
colonne employé 2 : 300
colonne employé 3 : 500
TEST EMPLOYE = 0
Exemple 2 :
colonne employé 1 : 300
colonne employé 2 : 300
colonne employé 3 :
TEST EMPLOYE = 1
Ré: FormuleFaire le calcul à partir de la colonne d'origine est probablement plus simple
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;
));

Je ne sais pas dans quelle mesure la ligne manquante doit être prise en compte. Dans ce cas, elle est traitée comme 0, mais elle peut être modifiée en 1 en modifiant la comparaison finale.