Вопрос Поиск разницы во времени с помощью OpenOffice.org Calc


У меня есть данные в этом формате:

      Action  (A)                  |     Time logged (B)
  ---------------------------------|-----------------------
1 |Policy converted successfully   |   19-FEB-10 18:34:01   
2 |Policy converted successfully   |   19-FEB-10 18:34:10   
3 |Policy converted successfully   |   19-FEB-10 18:34:21   

Мне нужно найти разницу во времени между строкой 2 и строкой 1 в секундах (или минутах / часах). Как я могу сделать то же самое с помощью OpenOffice.org Calc? Я пытался =B2-B1, результирующая клетка имела Err: 529 в результате. Я пробовал помещать маску формата DD-MMM-YY HH:MM:SS как источника, так и целевых ячеек, но не имеет никакого эффекта. Любые намеки о том, как это сделать?

Есть около 2800 строк записей, каждый из которых просто невозможно.


4
2018-02-22 21:24


происхождения


Летнее время, кто-нибудь? - Arjan
(И если это импорт какого-либо текстового файла, то явное определение столбцов даты-времени как даты-времени при импорте может помочь.) - Arjan
@Arjan - DST здесь не применим :) - Sathya♦


ответы:


Как ответил Крис, ваша проблема заключается в том, что ваш рабочий лист хранит даты как текстовую строку, а не как дату.

В дополнение к этому ячейка может быть только датой (то есть днем ​​на календаре), или время (время разгона), а не оба.   Изменить: Не верно, это работает отлично. Просто не существует функции синтаксического анализа для синтаксического анализа даты + времени за один раз.

Итак, во-первых, вам нужно разделить строку даты + времени на два столбца. Затем используйте DATEVALUE для преобразования даты, а TIMEVALUE - для преобразования времени. Затем вы можете рассчитать их.

Для этого вы можете использовать такие формулы:

Policy converted successfully   |       19-FEB-2010 18:34:01 | =LEFT(B1; 11) | =RIGHT(B1;8) | =DATEVALUE(C1) | =TIMEVALUE(D1) | =E1+F1

Объяснение:

  • Первые две формулы (LEFT, RIGHT) разделили строку на дату и время, чтобы разобрать их отдельно.
  • Следующие два (DATEVALUE, TIMEVALUE) анализируют строку как дату / время
  • последний комбинирует дату + время в одну ячейку (внутренняя дата и время - только числа с плавающей точкой, поэтому вы можете добавить)

Теперь вы можете использовать их в своем сердце. Конечно, вы могли бы комбинировать формулы для использования меньших ячеек.

Если последний столбец не отображается как дата + время, а как число, выберите форматирование даты.


5
2018-02-22 23:12



Спасибо, это кажется многообещающим. Я попробую и дам вам знать завтра, только что покинул офис;) - Sathya♦
Работал, как шарм, большое спасибо! - Sathya♦


Для расчета разницы два раза в часах:

=(HOUR(E17)+(MINUTE(E17)/60))-(HOUR(D17)+(MINUTE(D17)/60))

где D17 - это «от времени», а E17 - «время». Как E17, так и D17 должны быть отформатированы как время.


5
2018-06-08 14:21



Это отличный, общий ответ. - DanM7
Вы могли бы просто сделать =E17-D17 и использовать [HH] или [HH]:MM для форматирования результата. - Jason C


Может, это поможет?

http://www.ehow.com/how_5924425_calculate-time-differences-openoffice.html

У меня нет OO, поэтому я не могу проверить. В основном используйте DATEDIFF функция.


1
2018-02-22 21:36



К сожалению datediff по-видимому, не вбирает в число клеток в качестве ссылки :( - Sathya♦
: -О жаль, что я должен был установить OO и проверить его :) - Burton
не беспокойтесь, спасибо за попытку :) - Sathya♦
Кажется, что datediff не является листом (см. wiki.services.openoffice.org/wiki/Documentation/How_Tos/...), но что-то из механизма базы данных HSQLdb (см. wiki.services.openoffice.org/wiki/...) - Arjan


Похоже, что данные являются строкой и сначала необходимо преобразовать в дату. Даты внутренне хранятся как числа с плавающей запятой, поэтому вы можете просто их вычесть и получить разницу (результат может по-прежнему нуждаться в форматировании в зависимости от того, что вы ищете).


1
2018-02-22 21:49



Я применил маску формата даты, как упоминалось в моем вопросе, но без эффекта. - Sathya♦


Эта ошибка означает что-то вроде того, что форматирование ячейки испорчено. Я не могу воспроизвести его (3.1, Ubuntu 9.10) (это просто работает для меня), но вы должны проверить «реальное» содержимое ячейки, как оно появляется в текстовом поле редактирования на панели инструментов. Также попробуйте установить форматирование ячеек (щелкните правой кнопкой мыши -> Форматировать ячейки ... -> Числа) в тип даты (не просто используя маску, явно установите ее в одну из предопределенных масок даты).


1
2018-02-22 23:05



Это то, что он показывает в окне редактирования - 19-FEB-10 18:33:20 Применяется только предопределенные маски, но все же Err:529 - Sathya♦
@Sathya: Какая версия у вас есть? - Bobby
Я на 3.0.0 (OOO300m9, build 9358), помеченный как выпуск Novell. Я использую Windows, а не Linux. - Sathya♦
@Sathya: Есть ли вероятность, что вы сможете перейти на более новую версию? Это может быть ошибка, которая была исправлена ​​(я где-то читал, что эта ошибка связана с ошибкой). - Bobby
Извините, я не могу обновить его, вне его контроля. - Sathya♦