Convertir une colonne de caractères représentant la durée en numériqueJ'ai une colonne de caractères dont la valeur d'entrée représente la durée (comme: 4d 15h 5m, 2d 32m, 23h 52m, 18m) et j'aimerais la convertir au format numérique: jour: hr: m
Re: Convertir une colonne de caractères représentant la durée en numériqueUne autre façon, pas plus élégante mais avec plus de contrôle sur l'entrée:
//Parse Duration String
match = Regex Match(
:Character Duration,
"(([\d\.]+)d)? ?(([\d\.]+)h)? ?(([\d\.]+)m)?"
);
//Add up duration
If( Is Missing( match[3] ), 0, In Days( Num( match[3] ) ) ) +
If( Is Missing( match[5] ), 0, In Hours( Num( match[5] ) ) ) +
If( Is Missing( match[7] ), 0, In Minutes( Num( match[7] ) ) )
Re: Convertir une colonne de caractères représentant la durée en numériqueIl y a peut-être une manière plus élégante de faire cela, mais j'ai pu faire fonctionner la formule ci-dessous (également dans le tableau ci-joint). Il divise la colonne de votre personnage à l’aide d’un séparateur d’espace en une liste. Pour chacun de ces éléments, il ajoute la durée appropriée en fonction du dernier caractère à une variable renvoyée à la fin.
durs = Words( :CharacterDuration, " " );
val = 0;
For( i = 1, i <= N Items( durs ), i++,
number = Num( Substr( durs[i], 1, Length( durs[i] ) - 1 ) );
If(
Ends With( durs[i], "d" ), val += In Days( number ),
Ends With( durs[i], "h" ), val += In Hours( number ),
Ends With( durs[i], "m" ), val += In Minutes( number )
);
);
val;