Как рассчитать временную дельту в таблицах Google?

У меня есть Google Spreadsheet, который выглядит примерно так:

 Date        | Start time  | End time    | Minutes
 ------------+-------------+-------------+-----------
 1/11/2012   | 11:39       | 12:41       | ?!
 ------------+-------------+-------------+-----------
             |             |             | 

Прямо сейчас, если я заполняю количество минут между двумя днями дня вручную. Есть ли прямой способ рассчитать временную дельта и сделать таблицу для меня?

57 голосов | спросил Stefano Palazzo 11 Jam1000000amWed, 11 Jan 2012 04:58:57 +040012 2012, 04:58:57

11 ответов


49

В Google добавлен новый цифровой формат с названием Duration. Установите начальные и конечные поля в Format -> Number -> Time и поле для расчета на Format -> Number -> Duration

Как только вы это сделаете, вы можете вычесть поля, чтобы получить разницу, как отметил Стефано Палаццо в своем ответе.

ответил Jacob Hulse 22 PMpWed, 22 Apr 2015 17:29:28 +030029Wednesday 2015, 17:29:28
41

Да, если ваши временные поля правильно отформатированы (нажмите Формат â † 'Номер â †' Время ), вы можете просто добавить и вычесть время:

=C2-B2

или

  

21:58:00 - 20:44:00 = 1:14:00

Это даст вам дельта времени как HH:MM:SS. И если вы хотите вычислить количество минут, вы можете использовать функции Hour(), Minute() и Second() на этом поле:

=(Hour(D2) * 60) + Minute(D2) + (Second(D2) / 60)

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

Предупреждение

Если одно событие продлится до полуночи, скажем, с 23:50 до 00:10, это будет отображаться как отрицательное время!

В противном случае, чтобы эти события обрабатывались «правильно», вы можете либо поставить «24:10», либо разделить событие на два.

Лучший способ

Несмотря на то, что вводить данные немного сложнее, самый надежный способ сделать это - отметить поле beinning и end как «Date Time», а поле delta - «Hours», которое будет выглядеть так:

Beginning          End                  Delta
8/1/2013 0:00:00   8/2/2013 12:30:00    36:30:00
ответил Stefano Palazzo 11 Jam1000000amWed, 11 Jan 2012 05:02:25 +040012 2012, 05:02:25
8

Если вы добавили следующую формулу в D2, то минуты вычисляются автоматически:

Формула

=ARRAYFORMULA(IF(ISBLANK(B2:B)=FALSE,((C2:C-B2:B)*24*60),""))

Разъяснения

Разница между временем, в соответствии с десятичным форматом, выражается в днях. Поэтому умножение времени 24 раза 60 даст минуты

Примечание

Существует одно условие: столбец D должен быть сформирован как «нормальный».

Пример

См. файл примера, который я создал: Delta Time

ответил Jacob Jan Tuinstra 21 J000000Sunday13 2013, 17:03:42
7

Я провел много экспериментов. Это самый простой способ рассчитать временную дельту в Google Spreadsheets. Отформатируйте ячейку, содержащую формулу следующим образом:

Формирование ячейки формул

Формат> Число> Дополнительные форматы> Дополнительные форматы даты и времени , удалить «второй» и :. Затем отформатируйте ячейки времени окончания и времени запуска следующим образом: h:mm am/pm.

Форматирование ячейки времени ввода

Используйте формулу =abs(end time - start time). Это дает вам абсолютное значение, поэтому отрицательных значений времени не будет.

ответил Natalie Kee 1 J000000Wednesday15 2015, 02:18:04
5

Для более надежного решения мы используем пользовательскую функцию.

1. Добавление пользовательской функции

Использование редактора сценариев (следуйте инструкциям в https://developers.google.com/apps- script /execution_custom_functions ) - пишет:

function toEpoch (indate) {
  return indate.getTime();
}

2. Добавить формуляр

Затем в ячейке записывается:

=(toEpoch(C2)-toEpoch(B2)) / 60*1000

Преобразуйте разницу в миллисекундах Epoch в минуты.

ответил sketchy 21 J000000Sunday13 2013, 16:18:18
3

Намного проще: посмотрите на это B2: 23:00 C2: 1:37 D2: = C2-B2 + (B2> C2)

Почему это работает, время составляет часть дня, сравнение B2> C2 возвращает True (1) или False (0), если true 1 день (24 часа). http://www.excelforum.com/excel -общая /471757-вычисления времени разности-над-midnight.html

ответил Tom Elwood 23 MaramWed, 23 Mar 2016 05:39:25 +03002016-03-23T05:39:25+03:0005 2016, 05:39:25
3

Если вы хотите, чтобы ваша дельта времени измерялась в днях, используйте

=DAYS(end_date, start_date)
ответил emisilva 7 +03002017-10-07T03:43:57+03:00312017bEurope/MoscowSat, 07 Oct 2017 03:43:57 +0300 2017, 03:43:57
1

В Google Таблицах я использовал формулу ниже

=Round((hour(A2-A1)*60 + minute(A2-A1))/60,2)

, чтобы дать мне разницу в десятичных часах.

ответил Vibhu 8 ThuEurope/Moscow2016-12-08T13:51:38+03:00Europe/Moscow12bEurope/MoscowThu, 08 Dec 2016 13:51:38 +0300 2016, 13:51:38
-1

=(C2-B1)*1440, затем установите формат «Обычный текст».

ответил Eric 4 Jam1000000amWed, 04 Jan 2017 04:05:52 +030017 2017, 04:05:52
-1

Для моего личного приложения:

StartTime (columnA)| EndTime(Column B)| Date (Column C)

Это сработало для меня:
=if(B4-A4<0,(B4+C4+1)-(A4+C4),B4-A4); Формат ячейки как формат \ Time \ Время.

Для истинного состояния: формула, вдохновленная комментариями Стефано Палаццо.

ответил Bob K 10 Jam1000000amTue, 10 Jan 2017 06:08:09 +030017 2017, 06:08:09
-2

Я согласен, что временная дельта выражается в днях, поэтому, чтобы вернуться к минутам, вы должны умножить разницу на 1440, что составляет 24 x 60.

У меня была эта проблема сегодня, и я подумал, что упомянуть другой простой способ получить текущее время в электронной таблице Google Docs, это ввести CONTROL : в ячейке. Вы можете использовать это для ячеек начала и окончания.

Если вам нужно ввести текущую дату в ячейке, то это достигается с помощью CONTROL ;

ответил Barry Welford 6 32013vEurope/Moscow11bEurope/MoscowWed, 06 Nov 2013 03:23:22 +0400 2013, 03:23:22

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132