2

У меня есть файл logdata с временем окончания и продолжительностью операции, указанной в миллисекундах. Я хотел бы вычесть продолжительность из времени окончания, чтобы получить, когда операция началась. Как я могу это сделать?

Столбцы следующие:

|EndTime   |ElapsedTime|Logmessage|
|01:00:41.5|        412|Operation2|
|01:00:41.6|        260|Operation3|
|01:00:42.0|       1520|Operation1|

И то, что я хочу, это:

|StartTime |EndTime   |ElapsedTime|Logmessage|
|01:00:41.1|01:00:41.5|        412|Operation2|
|01:00:41.4|01:00:41.6|        260|Operation3|
|01:00:40.5|01:00:42.0|       1520|Operation1|

Таким образом, ясно, что операция 1, будучи зарегистрированной после операций 2 и 3, фактически запустилась первой.

Я попытался просто вычесть столбец Elapsed time из столбца EndTime . Я пытался использовать команду Time :

Time(0;0;[ElapsedTime]/1000)

но Time явно игнорирует миллисекунды.

2 ответа2

3

Пока ElapsedTime всегда является целым числом меньше 32768,

TIME(0;0;[ElapsedTime])/1000

должно сработать.  (Я предполагаю, что точки с запятой обычно работают для вас в функциях.  На моей машине я бы сказал TIME(0,0,[ElapsedTime])/1000 , используя запятые.)

Предупреждение: параметр « Second(s)» для TIME() должен быть между 0 и 32767.  Если у вас когда-либо будет длительность больше 32767 миллисекунд (то есть 32,767 секунд), вышеприведенное произойдет сбой.  Если это возможно или ElapsedTime может иметь дробную часть (например, 412.867) - или может быть отрицательной - тогда ответ Мате будет работать лучше.

1

В Excel дни адрес хранится в виде целых чисел, а часы и минуты - в виде дробей. Попробуй это:
EndTime-ElapsedTime/(24*60*60*1000)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .