Scripts de base de datosHola a todos,
Estoy intentando automatizar algunos cambios en una tabla de datos para poder realizar algunos análisis.
Tengo las columnas Referencia, % y % ACTUALIZADAS en mi tabla de datos, y desde un script me gustaría construir las columnas A, B, ...., J:

Dar la columna A:
- reanudar para la línea de referencia A (línea 1): los datos de la columna % ACTUALIZADO
- resumir para las demás líneas: los datos de la columna %
En mi base de datos inicial, tengo alrededor de 100 filas distintas en mi columna Ref, por eso no uso directamente una fórmula "Si" para crear mis 100 nuevas columnas.
Encontrarás las bases de datos adjuntas.
Gracias por su ayuda.
Automatización y scriptingRe: Scripts de base de datosPor ejemplo, puedes dividir tu tabla.

Luego, complete los valores faltantes según la columna % y, finalmente, actualice los valores a la tabla original. Hay muchas maneras de completar esto; una opción es mediante JSL y la subscripción de tablas de datos.
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);
