Ответ 1
Используя некоторые текстовые манипуляции, мы можем разделить каждую единицу времени и затем суммировать их вместе с их миллисекундными коэффициентами.
Чтобы показать формулы в ячейках, используйте CTRL + `
У меня есть устройство, которое выводит время в формате hh:mm:ss.000
, например, 00: 04: 58.727, и мне нужно преобразовать их в миллисекунды.
Я не могу изменить способ вывода данных, поэтому мне нужно сделать это в Excel, но я не знаю, что VB ищет решение по ячейкам.
Используя некоторые текстовые манипуляции, мы можем разделить каждую единицу времени и затем суммировать их вместе с их миллисекундными коэффициентами.
Чтобы показать формулы в ячейках, используйте CTRL + `
Скажем, что ваше значение времени находится в ячейке A1
, а затем в A2
вы можете поставить:
=A1*1000*60*60*24
или просто:
=A1*86400000
То, что я делаю, - это принять десятичное значение времени и умножить его на 1000 (миллисекунды) и 60 (секунд) и 60 (минут) и 24 (часы).
Затем вам нужно будет форматировать ячейку A2
как General, чтобы она была в миллисекундах.
Если ваше время является текстовым значением, используйте:
=TIMEVALUE(A1)*86400000
вы можете сделать это следующим образом:
ячейка [B1]: 0: 04: 58,727
cell [B2]: = FIND ( "."; B1)
ячейка [B3]: = LEFT (B1; B2-7)
ячейка [B4]: = MID (B1; 11-8; 2)
ячейка [B5]: = ВПРАВО (B1; 6)
ячейка [B6]: = B3 * 3600000 + B4 * 60000 + B5
возможно, вам нужно умножить B5 также на 1000.
= FIND ( "."; B1) необходимо только потому, что у вас могут быть такие входы, как "0: 04: 58.727" или "10: 04: 58.727" с разной длиной.
Вместо выполнения строковых манипуляций вы можете использовать функции HOUR, MINUTE, SECOND, чтобы разделить время. Затем вы можете умножить на 60 * 60 * 1000, 60 * 1000 и 1000 соответственно, чтобы получить миллисекунды.
Здесь это как единственная формула:
=(RIGHT(D2,3))+(MID(D2,7,2)*1000)+(MID(D2,4,2)*60000)+(LEFT(D2,2)*3600000)
Используйте
=LEFT(B2, 2)*3600000 + MID(B2,4,2) * 60000 + MID(B2,7,2)*1000 + RIGHT(B2,3)
попробуйте следующее:
=(RIGHT(E9;3))+(MID(E9;7;2)*1000)+(MID(E9;5;2)*3600000)+(LEFT(E9;2)*216000000)
Возможно, вам нужно изменить полуколону комой...