4

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

      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 строк записей, просмотреть каждую из которых просто невозможно.

5 ответов5

5

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

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

Итак, сначала вам нужно разделить строку даты + времени на два столбца. Затем используйте 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

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

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

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

1

Поможет ли что-нибудь подобное?

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

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

1

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

1

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

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