J'ai un appareil qui affiche l'heure au format hh:mm:ss.000
, par exemple, 00: 04: 58.727 et j'ai besoin de les convertir en millisecondes.
Je ne peux pas changer la façon dont le périphérique affiche l'heure, je dois donc le faire dans Excel, mais je ne connais pas VB, je recherche donc une solution cellule par cellule.
En utilisant une manipulation de texte, nous pouvons séparer chaque unité de temps, puis les additionner avec leurs coefficients millisecondes.
Pour afficher les formules dans les cellules, utilisez CTRL + `
Disons que votre valeur de temps est dans la cellule A1
puis dans A2
vous pouvez mettre:
=A1*1000*60*60*24
ou simplement:
=A1*86400000
Ce que je fais est de prendre la valeur décimale du temps et de la multiplier par 1000 (millisecondes) et 60 (secondes) et 60 (minutes) et 24 (heures).
Vous devrez ensuite formater la cellule A2
en tant que Général pour qu’elle soit au format millisecondes.
Si votre temps est une valeur de texte, utilisez:
=TIMEVALUE(A1)*86400000
Voici la formule unique:
=(RIGHT(D2,3))+(MID(D2,7,2)*1000)+(MID(D2,4,2)*60000)+(LEFT(D2,2)*3600000)
vous pouvez le faire comme ceci:
cellule [B1]: 0: 04: 58,727
cellule [B2]: = FIND ("."; B1)
cellule [B3]: = GAUCHE (B1; B2-7)
cellule [B4]: = MID (B1; 11-8; 2)
cellule [B5]: = DROITE (B1; 6)
cellule [B6]: = B3 * 3600000 + B4 * 60000 + B5
vous devez peut-être multiplier B5 avec 1000.
= FIND ("."; B1) est uniquement nécessaire car vous pourriez avoir des entrées du type "0: 04: 58.727" ou "10: 04: 58.727" de longueur différente.
Utilisation
=LEFT(B2, 2)*3600000 + MID(B2,4,2) * 60000 + MID(B2,7,2)*1000 + RIGHT(B2,3)
Plutôt que de manipuler des chaînes, vous pouvez utiliser les fonctions HOUR, MINUTE, SECOND pour séparer l'heure. Vous pouvez ensuite multiplier par 60 * 60 * 1000, 60 * 1000 et 1000 respectivement pour obtenir des millisecondes.