Database scriptsBonjour à tous,
J'essaye d'automatiser certaines modifications dans une table de données pour pouvoir faire une analyse.
Je dispose des colonnes Ref, % et % UPDATED dans ma table de données, et à partir d'un script j'aimerais construire les colonnes A, B, ...., J :

Danns la colonne A :
- reprendre pour la ligne ref A (ligne 1) : la donnée de la colonne % UPDATED
- reprendre pour les autres lignes : la donnée de la colonne %
Dans ma base de données initiale, j'ai environ 100 lignes distinctes dans ma colonne Ref, c'est pour ça que j'utilise pas directement une formule "If" pour créer mes 100 nouvelles colonnes.
Vous trouverez en pièces-jointes les bases de données.
Merci pour votre aide.
Automation and ScriptingRe: Scripts de base de donnéesVous pouvez par exemple diviser votre table

, puis complétez les valeurs manquantes en fonction de la colonne %, et enfin, mettez à jour les valeurs dans votre table d'origine. Il existe de nombreuses façons de compléter ce remplissage, notamment via JSL et l'indexation des tables de données.
Names Default To Here(1);
dt = Datatable("BD");
dt_split = dt << Split(
Split By(:Ref),
Split(:"% UPDATED"n),
Group(:Ref, :"%"n),
Output Table("Split of BD by Ref"),
Sort by Column Property,
Invisible
);
cont_cols = dt_split << Get Column Names("String", "Continuous");
Remove From(cont_cols, 1); // drop %
perc_vals = dt_split[0, "%"];
For Each({cont_col}, cont_cols,
perc_vals_current = perc_vals;
non_missing = dt_split << Get Rows Where(!IsMissing(As Column(dt_split, cont_col)));
perc_vals_current[non_missing] = dt_split[non_missing, cont_col];
dt_split[0, cont_col] = perc_vals_current
);
dt << Update(
With(dt_split),
Match Columns(:Ref = :Ref),
Replace Columns in Main Table(None)
);
Close(dt_split, no save);
