Buenos días a todos,
Estoy buscando construir una fórmula contra varias columnas en mi base de datos. No es tan fácil de entender, explicaré mi objetivo con un ejemplo:

PASO 1: corresponde al número 2100
Parte gris:
Aquí, aquí hay 4 tipos de objetos diferentes (ENT1,..,ENT4). Cada uno de los objetos está asociado a un número de progreso (columna T), estos números están vinculados a operaciones bien definidas.
Parte amarilla:
Estas celdas muestran qué "números" se someterán a cada objeto y asocian este número con operaciones. Cuando las celdas están vacías, significa que el objeto no se someterá a esta operación.
El objetivo es:
- Sumar las duraciones hasta el paso 1, sabiendo que el objeto ha tenido un avance (Ej: el objeto ENT2 está ubicado en el número 1749, por lo que no nos interesa lo que hizo antes en el 1500) por lo que la duración hasta el paso 1 es solo la duración del paso 1749 por lo que la duración = 45
Empecé con este código:
Names Default To Here( 1 );
dt = Current Data Table();
dur_cols = Filter Each({col_name}, dt << Get Column Names("String", Continuous),
Starts With(col_name, "durée"));
// for indexing later
num_colnr = Transform Each({col_name}, dur_cols,Word(-1, col_name));
dt << New Column("DUREE ETAPE1", Numeric, Continuous, Format(":jou:hh:m",8), << Set Each Value(
If( :"T"n < 2100 ,
colidx = Loc(dt[Row(), num_colnr] > :"opé"n & (num_colnr < 2100 ) );
If(N Items(colidx) > 0,
val = Sum(dt[Row(), dur_cols[colidx]]);
If(IsMissing(val),
0
,
val
);
,
0
)
,
0
)
));
Gracias por su ayuda,
Atentamente