Bonjour à tous,
Je dispose d’une base de données comme ci-dessous,
Dans la BD, les cellules vertes sont les résultats que l’on aimerait obtenir.
J’aimerai créer un script pour calculer des durées.
Je dispose de colonnes « date début » et ensuite je dispose de colonne « numéro » qui indique l’ordre d’exécution.
Le but serait de calculer « date début y - date début x » en fonction des numéros.
Je m’explique sur un exemple avec la BD :
1ère ligne : Nous remarquons que la colonne « 720 » possède le numéro 12 dans la cellule, donc nous cherchons parmi toutes les colonnes « numéros » le premier supérieur à 12 (ici colonne « 740 » avec la valeur 21)
Donc la durée 720 serait durée 720 = date début 740 - date début 720.
Ensuite pour durée 740 cela serait durée 740 = date début 9801 - date début 740 avec la même principe
Voici ci-dessous le script que j’ai commencé à écrire :
dt = Current Data Table();
dur_cols = Filter Each( {col_name}, dt << Get Column Names( "String", Continuous ),
Starts With( col_name, "Date début" )
);
num_colnr = Transform Each( {col_name}, dur_cols, Word( -1, col_name ) );
char_cols = dt << Get Column Names ("string", Character);
wait(1);
N_taches = N Items(dur_cols);
for (i = 1, i <= N_taches, i++,
Eval(
Eval Expr(
col = dt << New Column ( "durée" || num_colnr[i], Numeric, "Continuous", Format(":jou:hh:m",8));
col << Formula(
colidx = Loc(dt[row(), char_cols] > Eval(num_colnr[i]))[1];
If ( N Items(colidx) > 0,
val = dur_cols[colidx] - Eval(dur_cols[i]);
If(IsMissing(val),
0
,
val
);
,
0
);
);
)));
Merci pour votre aide !